2010-11-10 57 views
0

我刚开始用WPF,并希望一些建议有以下:在WPF中为样式化菜单设置MenuItem的最佳方式是什么?

我有一个看起来像这样的菜单:

<Menu Name="MenuBar" 
    Grid.Row="0" 
    HorizontalAlignment="Right" 
    Style="{DynamicResource MenuBarStyle}"> 
    <MenuItem Header="Settings" /> 
    <MenuItem Header="Help" /> 
</Menu> 

在我Window.Resources我已经定义了这种风格:

<Style x:Key="MenuBarStyle" TargetType="{x:Type Menu}"> 
    <Setter Property="Background" Value="{x:Null}" /> 
    <Setter Property="Foreground" Value="White" /> 
    <Setter Property="FontSize" Value="10" /> 
</Style> 

这工作正如我预期和打算。不过,我也想在我的菜单中改变每个MenuItem的Padding属性。做这个的最好方式是什么?我最初的想法是创建一个单独的样式,并将其应用于每个MenuItem,但如果我的MenuItems是动态添加的(它们不会是,但仅仅是出于好奇),这将如何工作?有没有一种方法可以在我的“MenuStyle”风格内定位子菜单项?

感谢,

史蒂夫

回答

1

你可以使用一个“隐式”风格(一个没有X:主要属性),并将其定位到菜单项类型。这个样式默认选择为所有MenuItems。如果您只希望它被此菜单使用,请将此样式放置在Menu.Resources中,否则放在您的菜单样式所在的Window.Resources中。

相关问题