1
我正在使用MetroDark主题皮肤我的WPF应用程序,很遗憾没有MenuItem。所以我想改变前景和背景的菜单项的四种状态:WPF - 设置Sub-MenuItem风格与触发器
- 正常
- 徘徊
- 按下
- 禁用
到目前为止,我有这样的代码,什么它只是在鼠标悬停菜单项时设置Foreground和Background:
<Menu Background="#FF181818" Foreground="#FFABABAB" >
<Menu.Resources>
<Style x:Key="{x:Type MenuItem}" >
<Style.Setters>
<Setter Property="MenuItem.Background" Value="#FF181818" />
<Setter Property="MenuItem.Foreground" Value="#FFABABAB" />
</Style.Setters>
<Style.Triggers>
<Trigger Property="MenuItem.IsMouseOver" Value="True">
<Setter Property="MenuItem.Background" Value="Green" />
<Setter Property="MenuItem.Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
</Menu.Resources>
<MenuItem Header="File">
<MenuItem Header="New" Command="ApplicationCommands.New"></MenuItem>
<MenuItem Header="Open" Command="ApplicationCommands.Open"></MenuItem>
<MenuItem Header="Save" Command="ApplicationCommands.Save"></MenuItem>
<MenuItem Header="Save As" Command="ApplicationCommands.SaveAs"></MenuItem>
<Separator Background="#FF181818" Foreground="#FFABABAB"></Separator>
<MenuItem Header="Delete" Command="ApplicationCommands.Delete"></MenuItem>
<MenuItem Header="Quit" Click="Quit_MenuItem_Click"></MenuItem>
</MenuItem>
<MenuItem Header="Format" Click="Format_MenuItem_Click" ></MenuItem>
<MenuItem Header="About" ></MenuItem>
</Menu>
结果是: 但是,前景的设置适用于背景仅适用于MenuItem的直接子项,而不适用于其子菜单项。
我已经注意到这个Styled MenuItem on WPF,这可能是相关的。但我的问题是我可以解决这个没有ControlTemplate?我正在寻找一个可以应用于所有其他状态的解决方案,如IsDisabled和IsPressed。
非常感谢!