Silverlight 中的嵌套样式

Posted

技术标签:

【中文标题】Silverlight 中的嵌套样式【英文标题】:Nesting Styles in Silverlight 【发布时间】:2012-06-01 08:31:45 【问题描述】:

我正在创建一个类似 KPI 的控件,并希望根据特定条件应用多种样式,而不必遍历多个控件。基本上我有:

<Border>
  <TextBlock>
</Border>

边框需要样式,其中的 TextBlocks 也是如此。我有典型的绿色/黄色/红色 KPI,但每种都有两种模式。越接近最后期限,就越极端。

因此,对于 LongTermGreen,边框将具有带透明背景的绿色边框,并且 TextBlocks 的字体颜色将为绿色。但是对于 ShortTermGreen,我想将边框设为深绿色,将 TextBlock 的字体颜色设为白色。

显然,我可以使用自定义代码来执行此操作,并根据特定条件设置样式,但这很麻烦(一些 KPI 有多个 TextBlock。

这可能吗?到目前为止,我一直空白......

【问题讨论】:

【参考方案1】:

出于这个确切原因,WPF 有数据触发器,但不幸的是,这些触发器还没有进入 Silverlight。

这可能是非常规的,但您可以将样式属性绑定到 KPI 状态,然后使用自定义转换器为适当的状态值返回正确的样式资源。

否则,自定义代码是唯一的替代方案。

【讨论】:

以上是关于Silverlight 中的嵌套样式的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft Silverlight是啥程序?

Silverlight - 嵌套在表中的 Lync 应用程序

WP7 Silverlight出现错误-“”匹配委托没有超载

Silverlight 中的条件样式?

WPF DataGrid 样式-Silverlight DataGrid?

WPF/Silverlight的问题:在后台代码动态生成的控件,怎么设置动态样式 Style="DynamicResource sbStyle