2010-03-08 22 views

cevap

8

Evet, tamamen size bağlı. Bir simge dosyası sağladığınız için. Bu nedenle, MenuItem üzerinde Style.Trigger oluşturmalısınız ve bunun üzerinde devre dışı bırakılmış bir etki yaratmalısınız. Bir Opacity = 0.5 yapın ya da görüntüyü farklı bir .ico resmine getirin. IsEnabled = False ise şablonda yanlış

+0

Teşekkürler Jobi, bunu takdir ediyorum! – Brad

9

Jobi'nin yanıtını buldu.

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

And Style: İşte bir görüntü Stil ve MenuItem.Icon kullanarak aynı şeyi gerçekleştirmek için başka bir yol

<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

Veya sadece varsayılan MenuItem IsEnabled işlemiyle eşleşir. –

1

Bu garip görünüyor ama tüm yaptığım şu stil oluşturmak oldu. Bunun yerleşik bir davranış olduğunu düşünebilirsiniz, ancak bu olmadan (OP gibi), görüntü karartılmaz. Bununla birlikte, görüntü de etkilenir. Ve uygulamasındaki başka bir şeyi değiştirmem gerekmiyor.

<Style TargetType="MenuItem"> 
    <Style.Triggers> 
     <Trigger Property="IsEnabled" Value="False"> 
      <Setter Property="Opacity" Value="0.5"/> 
     </Trigger> 
    </Style.Triggers> 
</Style> 
İlgili konular