2012-09-19 24 views
5

Tengo una Button y su estilo:botón disparador IsEnabled no funciona

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

Pero cuando activo el botón (MyBtn.IsEnabled = true) no cambia su opacidad. ¿Por qué? ¿Como puedó resolver esté problema? Gracias.

+0

Momento en el que estás llamando MyBtn.IsEnabled = true? Tal vez antes de que el estilo se inicializa? – Vale

+0

@Vale no, llamo cuando hago clic en otro botón, los controles ya están cargados. – Nick

Respuesta

15

Un valor local establecido en el elemento (Opacity="1" en su código) siempre tendrá prioridad sobre un valor de activación de estilo o estilo. Por favor, eche un vistazo al Dependency Property Setting Precedence List.

Una solución fácil es fijar el valor por defecto en el estilo en su lugar:

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