Динамическое изменение стиля в WPF

Есть ли способ динамически изменять (и применять) стиль в 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>
  1. Сейчас мне нужно изменить цвет Pink , скажем, Green ], и все строки со стилем MyLineStyleKey стали зелеными. При отпускании линия становится розовой, а при выборе - синей ... Теперь мне нужно было изменить невыделенное свойство (с розового на зеленый) ..., поэтому это не просто установка другого цвета, триггер (выделение> Синий) больше не будет работать ... Это возможно? Как?

  2. Возможно ли привязать к розовому цвету в стиле, например, к фону кнопки, который будет отражать текущий цвет стиля?

РЕДАКТИРОВАТЬ:
Для 1 Я пробовал:

Style s = (Style)this.Resources["MyLineStyleKey"];

(s.Setters[0] as Setter).Value = background;
(s.Setters[1] as Setter).Value = background;

, но возникла исключительная ситуация:

После использования SetterBase (запечатано), его нельзя изменить.

19
задан Dave Clemmer 16 August 2011 в 16:02
поделиться