Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按钮IsEnabled触发器不工作_C#_Wpf_Button_Triggers_Isenabled - Fatal编程技术网

C# 按钮IsEnabled触发器不工作

C# 按钮IsEnabled触发器不工作,c#,wpf,button,triggers,isenabled,C#,Wpf,Button,Triggers,Isenabled,我有一个按钮及其样式: <Button Name="MyBtn" Style="{StaticResource ButtonEnabledStyle}" IsEnabled="False" Opacity="1" /> <Style x:Key="ButtonEnabledStyle" TargetType="Button"> <Style.Triggers> <Trigger Property="IsEnabl

我有一个
按钮及其样式:

<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>


但是当我启用按钮(
MyBtn.IsEnabled=true
)时,它不会改变其不透明度。为什么?我怎样才能解决这个问题?谢谢。

元素上设置的本地值(
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>


您在哪一点调用MyBtn.IsEnabled=true?可能在样式初始化之前?@Vale否,当我点击另一个按钮时,我会调用,控件已经加载。