2010-03-08 2 views

Répondre

8

Oui, cela dépend entièrement de vous. Parce que vous avez fourni un fichier Icon. Vous devez donc créer Style.Trigger sur MenuItem pour désactiver les effets. Soit une Opacité = 0.5 ou changer d'image pour une image .ico différente alors que IsEnabled = Faux dans le modèle

+0

Merci Jobi, je l'apprécie! – Brad

9

La réponse de Jobi a été utile. Voici une autre façon d'accomplir la même chose en utilisant une image de style et MenuItem.Icon:

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

Et le style:

<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

Ou juste pour correspondre à la gestion par défaut de MenuItem IsEnabled. –

1

Cela semble étrange, mais tout ce que je faisais était de créer le style suivant. On pourrait penser que c'est le comportement intégré, mais sans cela (comme l'OP), l'image n'est pas obscurcie. Avec cela, l'image est affectée, aussi. Et je n'ai pas besoin de modifier quoi que ce soit d'autre dans mon application.

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