我的 xaml 中有 4 个边框元素。我的视图模型有一个状态对象,它可以处于 state1、state2、state3 和 state4。根据状态,我需要用特定背景绘制我的边框。例如,如果我的状态是 state1,那么边框 1 应该有白色背景,其余的应该是灰色的。如果我的状态是 state2,那么border2 应该是白色的,其余的应该是灰色的,依此类推。
为此,我定义了 2 种样式,一种用白色绘制背景,另一种用灰色绘制。问题是如何通过指定绑定来进行样式选择?是否有一种叫做样式选择器的东西可用于 Border 元素?或者,我该如何解决这个问题?
示例代码:
<Border Style="{StaticResource HighlightedTileStyle}" Grid.Column="0"/>
<Border Style="{StaticResource NonHighlightedTileStyle}" Grid.Column="1"/>
<Border Style="{StaticResource NonHighlightedTileStyle}" Grid.Column="2"/>
<Border Style="{StaticResource NonHighlightedTileStyle}" Grid.Column="3"/>
<Style x:Key="HighlightedTileStyle" TargetType="{x:Type Border}">
<Setter Property="Background" Value="White"/>
</Style>
<Style x:Key="NonHighlightedTileStyle" TargetType="{x:Type Border}">
<Setter Property="Background" Value="Gray"/>
</Style>
请注意,我有一个视图模型,它有一个称为 IState 的状态对象,它可以是 State1、State2、State3 和 State4 类型。
使用.NET 3.5
谢谢,-迈克