WPF:当禁用菜单项时,图标是否为灰色是否是标准的?

Bra*_*rad 13 wpf icons command

我有带图标的菜单项,当它被禁用时,图标保持不变.是否由我来提供一个禁用的图标,如果是这样,这是否也适用于绑定到命令的menuitems?

Kor*_*fin 11

发现Jobi的回答很有帮助.这是使用图像样式和MenuItem.Icon完成同样事情的另一种方法:

<MenuItem Header="Add ..." Command="{Binding AddCommand}" >
   <MenuItem.Icon>
      <Image Source="{StaticResource AddImage}" Style="{StaticResource EnableDisableImageStyle}"/>
   </MenuItem.Icon>
</MenuItem>
Run Code Online (Sandbox Code Playgroud)

风格:

<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>
Run Code Online (Sandbox Code Playgroud)

  • 或者只是 &lt;Setter Property="Opacity" Value="0.5"/&gt; 来匹配默认的 MenuItem IsEnabled 处理。 (2认同)

Job*_*Joy 8

是的,这完全取决于你.因为您提供了一个Icon文件.因此,您需要在MenuItem上创建Style.Trigger以对其赋予禁用效果.要么Opacity = 0.5,要么将图像切换为不同的.ico图像,而模板中的IsEnabled = False