【发布时间】:2015-01-14 15:00:49
【问题描述】:
我有 DependencyProperty State of Flags 枚举类型。由于 State 属性的更改,我想更改某些元素边框颜色。由于某些原因,我不能直接对元素进行操作,只能通过设置其样式来操作。
如何更改以下代码,使其可以不检查 State 的确切值,而是检查它是否包含所需的标志?
<Style.Triggers>
<Trigger Property="State" Value="None">
<Setter Property="StateBorderBrush" Value="Transparent"/>
</Trigger>
<Trigger Property="State" Value="Covered">
<Setter Property="StateBorderBrush" Value="Blue"/>
</Trigger>
<Trigger Property="State" Value="Selected">
<Setter Property="StateBorderBrush" Value="Red"/>
</Trigger>
<Trigger Property="State" Value="contains flag 'Controlled'">
<Setter Property="StateBorderBrush" Value="Orange"/>
</Trigger>
</Style.Triggers>
【问题讨论】:
-
您可以使用转换器来检查值,否则
xaml在使用比较时提供有限的功能,即它只能检查相等和相等,因此Converter将是最简单的选择。这是linkHTH -
转换器应该放在哪里? Trigger 的 Property 和 Value 都不能接受绑定作为值。
标签: wpf enums triggers flags wpf-style