是否有方法在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>
在一個時刻,我需要變化的
Pink
顏色,來,說Green
,並與風格MyLineStyleKey
所有行成爲綠色。一行在釋放時是粉紅色的,當選擇時是藍色的......現在,我需要更改未選中的屬性(粉紅色到綠色)...,所以這不僅僅是將其設置爲其他顏色,觸發器(選擇>藍色)將不再工作......這可能嗎?怎麼樣?是否可以通過將綁定到樣式中的Pink顏色,比如說,一個Button背景,它將反映當前使用的樣式顏色?
編輯:
對於我嘗試:
Style s = (Style)this.Resources["MyLineStyleKey"];
(s.Setters[0] as Setter).Value = background;
(s.Setters[1] as Setter).Value = background;
但一個例外發生:
一個 'SetterBase' 之後是在使用 (密封),它不能修改。
這可以通過動詞來完成。 – Wernight 2010-09-29 12:33:38