WPF MenuItem设置为黑色时的颜色禁用时不会变为灰色

时间:2010-04-23 18:47:46

标签: wpf

当顶部菜单项前景设置为黑色并且背景设置为白色时,一切都适用于XP和Windows 7.但是我们使用的是黑色和白色前景的主菜单栏。这仅在Windows 7中引起问题。为什么当你将menuitem前景设置为黑色时,它在禁用时不会变为灰色。

1 个答案:

答案 0 :(得分:4)

我遇到了与Windows XP和7相同的问题。

Foreground =“Black”属性会覆盖作为IsEnabled函数的内置样式触发器。

要完成您要寻找的内容,需要使用IsEnabled上的触发器构建自己的样式。以下代码显示了如何在线执行此操作,尽管您可能希望将Style拉入资源部分并在所有菜单项上使用它。

<MenuItem Header="My Item" IsEnabled="{Binding MyItemEnabled}">
    <MenuItem.Style>
        <Style TargetType="{x:Type MenuItem}">
            <Setter Property="Foreground" Value="Black"/>
            <Style.Triggers>
                <Trigger Property="IsEnabled" Value="False">
                    <Setter Property="Foreground" Value="Gray"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </MenuItem.Style>
</MenuItem>