Есть ли способ динамически изменять (и применять) стиль в WPF?
Скажем, у меня есть стиль, объявленный в XAML:
<Style TargetType="local:MyLine"
x:Key="MyLineStyleKey" x:Name="MyLineStyleName">
<Setter Property="Fill" Value="Pink"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter Property="Fill" Value="Blue" />
</Trigger>
</Style.Triggers>
</Style>
-
В какой-то момент мне нужно изменить цвет
Pink
, скажемGreen
, а все строки со стилемMyLineStyleKey
стали зелеными. Линия розовая, когда ее отпускают, а синий - когда выбрано... Теперь мне нужно было изменить невыбранное свойство (от Pink до Green)..., так что это не просто настройка его на другой цвет, триггер (выбоp > синий ) больше не будет работать... Это возможно? Как? -
Возможно ли привязать к розовому цвету в стиле, скажем, к фону кнопки, который будет отражать используемый в текущий момент цвет стиля?
EDIT:
Для 1 я попробовал:
Style s = (Style)this.Resources["MyLineStyleKey"];
(s.Setters[0] as Setter).Value = background;
(s.Setters[1] as Setter).Value = background;
но произошло исключение:
После использования "SetterBase" (запечатан), он не может быть изменен.