Я использовал ресурсный словарь для добавления маленького зеленого квадрата
Я добавил словарь ресурсов для моего 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>