2010-03-08 20 views

Respuesta

8

Sí, depende totalmente de usted. Porque ha proporcionado un archivo Icon. Por lo tanto, debe crear Style.Trigger en MenuItem para dar un efecto deshabilitado sobre eso. O bien, haga una Opacidad = 0.5 o cambie la imagen a una imagen .ico diferente mientras IsEnabled = False en la plantilla

+0

Gracias Jobi, lo aprecio! – Brad

9

Encontró la respuesta de Jobi útil. Aquí hay otra manera de lograr lo mismo usando un estilo de imagen y la MenuItem.Icon:

<MenuItem Header="Add ..." Command="{Binding AddCommand}" > 
    <MenuItem.Icon> 
     <Image Source="{StaticResource AddImage}" Style="{StaticResource EnableDisableImageStyle}"/> 
    </MenuItem.Icon> 
</MenuItem> 

Y el estilo:

<Style x:Key="EnableDisableImageStyle" TargetType="{x:Type Image}"> 
    <Style.Triggers> 
     <Trigger Property="IsEnabled" Value="False"> 
      <Setter Property="Opacity" Value="0.75"/> 
      <Setter Property="BitmapEffect"> 
       <Setter.Value> 
        <BlurBitmapEffect Radius="2.0" KernelType="Gaussian"/> 
       </Setter.Value> 
      </Setter> 
     </Trigger> 
    </Style.Triggers> 
</Style> 
+1

O simplemente para coincidir con el MenuItem predeterminado IsEnabled handling. –

1

Esto parece extraño, pero lo único que hizo fue crear el siguiente estilo. Se podría pensar que este es el comportamiento incorporado, pero sin esto (como el OP), la imagen no se atenúa. Con esto, la imagen también se ve afectada. Y no necesito modificar nada más en mi aplicación.

<Style TargetType="MenuItem"> 
    <Style.Triggers> 
     <Trigger Property="IsEnabled" Value="False"> 
      <Setter Property="Opacity" Value="0.5"/> 
     </Trigger> 
    </Style.Triggers> 
</Style> 
Cuestiones relacionadas