Nic*_*ick 5 c# wpf triggers button isenabled
我有一个Button和它的风格:
<Button Name="MyBtn" Style="{StaticResource ButtonEnabledStyle}"
IsEnabled="False" Opacity="1" />
<Style x:Key="ButtonEnabledStyle" TargetType="Button">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="True" >
<Setter Property="Opacity" Value="0.1" />
</Trigger>
</Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)
但是当我启用Button(MyBtn.IsEnabled = true)时,它不会改变它的不透明度.为什么?我怎么解决这个问题?谢谢.
Jul*_*ain 17
元素上设置的局部值(Opacity="1"在代码中)将始终优先于样式或样式触发器值.请查看依赖项属性设置优先级列表.
一个简单的解决方法是在样式上设置默认值:
<Style x:Key="ButtonEnabledStyle" TargetType="Button">
<Setter Property="Opacity" Value="1.0" />
<Style.Triggers>
<Trigger Property="IsEnabled" Value="True" >
<Setter Property="Opacity" Value="0.1" />
</Trigger>
</Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)