有没有办法在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
颜色绑定,以反映当前使用的样式颜色?
编辑:
对于1,我尝试过:
Style s = (Style)this.Resources["MyLineStyleKey"];
(s.Setters[0] as Setter).Value = background;
(s.Setters[1] as Setter).Value = background;
但是出现了一个异常:
'SetterBase'一旦被使用(sealed),就不能再被修改。