Я использовал ресурсный словарь для добавления маленького зеленого квадрата

Я добавил словарь ресурсов для моего tabcontrol для использования. У каждого tabitem есть небольшое поле справа, которое определено в словаре ресурсов.

Я хотел бы изменить цвет на основе флажка в каждом табите. В настоящее время, если я делаю это в коде, все табитемы меняют цвет

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

Любая помощь с благодарностью. Спасибо.

1 ответ

Я бы пошел с триггерами. В шаблоне или стиле TabItem вы можете добавить триггеры, которые обрабатывают определенные значения свойств и выполняют настройку свойств. Взгляните на страницу класса DataTrigger в MSDN.

Краткий пример

<Style TargetType="TabItem">
    <Style.Triggers>
      <DataTrigger Binding="{Binding ElementName=SomeObject, Path=SomeProperty}" Value="MakeItRed">
        <Setter Property="Foreground" Value="{DynamicResource MyRedBrush}" />
      </DataTrigger>    
    </Style.Triggers>
</Style>
Другие вопросы по тегам