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