我正在创建一个类似于控件的 KPI,并希望根据特定条件应用多个样式,而无需遍历多个控件。基本上我有:
<Border>
<TextBlock>
</Border>
边框需要样式,其中的文本块也需要样式。我有典型的绿色/黄色/红色 KPI,但每种模式都有两种模式。越接近最后期限,就越极端。
因此,对于长期绿色,边框将具有带有透明背景的绿色边框,并且文本块的字体颜色将为绿色。但是对于短期绿色,我想改为将边框设置为深绿色,使文本块的字体颜色为白色。
显然,我可以使用自定义代码来执行此操作,并根据特定条件设置样式,但这很混乱(某些 KPI 有多个 TextBlocks。
这可能吗?到目前为止,我一直处于空白状态...
WPF 出于这个确切原因而具有数据触发器,但不幸的是,这些触发器尚未进入 Silverlight。
这可能是非常规的,但您可以将样式属性绑定到 KPI 状态,然后使用自定义转换器为相应的状态值返回正确的样式资源。
否则,自定义代码是唯一的其他替代方法。