2

我添加了一个资源字典供我的 tabcontrol 使用。每个 tabitem 的右侧都有一个在资源字典中定义的小框。

我想根据每个 tabitem 中的复选框更改颜色。目前,如果我在所有 tabitems 后面的代码中执行此操作,则会改变颜色

LinearGradientBrush lgbrush = (LinearGradientBrush)(this.FindResource("TabItemSideBackground")); lgbrush.GradientStops[0].Color = Colors.AntiqueWhite; lgbrush.GradientStops[1].Color = Colors.Red; lgbrush.GradientStops[2].Color = Colors.OrangeRed;

任何帮助是极大的赞赏。谢谢你。

4

1 回答 1

0

我会选择触发器。在 TabItem DataTemplate 或样式中,您可以添加处理属性特定值的触发器,并执行属性设置。查看 MSDN 上的DataTrigger类页面。

一个简短的例子

<Style TargetType="TabItem">
    <Style.Triggers>
      <DataTrigger Binding="{Binding ElementName=SomeObject, Path=SomeProperty}" Value="MakeItRed">
        <Setter Property="Foreground" Value="{DynamicResource MyRedBrush}" />
      </DataTrigger>    
    </Style.Triggers>
</Style>
于 2012-12-03T16:18:28.960 回答