Button IsEnabled Trigger does not work

11,129

A local value set on the element (Opacity="1" in your code) will always take precedence over a style or style trigger value. Please have a look at Dependency Property Setting Precedence List.

An easy fix is to set the default value on the style instead:

<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>
Share:
11,129
Nick
Author by

Nick

Updated on June 15, 2022

Comments

  • Nick
    Nick almost 2 years

    I have a Button and its Style:

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

    But when I enable the Button (MyBtn.IsEnabled = true) it does not change its Opacity. Why? How can I solve this problem? Thanks.