我有一个菜单,其中有几个子菜单放在分隔符之间,如下所示:
<Menu x:Name="mainMenu">
<MenuItem x:Name="mainSubMenu" Header="Menus">
<MenuItem x:Name="topMenuItem" Header="TopSubMenu">
<MenuItem/>
<MenuItem/>
<MenuItem/>
</MenuItem>
<Separator/>
<MenuItem x:Name="middleMenuItem" Header="MiddleSubMenu">
<MenuItem Header="MI1"/>
<MenuItem Header="MI2"/>
<MenuItem Header="MI3"/>
<MenuItem Header="MI4"/>
</MenuItem>
<Separator/>
<MenuItem x:Name="bottomMenuItem" Header="Bottom" />
</MenuItem>
</Menu>
我为中间子菜单创建了一个样式,允许滚动浏览不同的菜单项。我希望顶部和底部子菜单具有默认样式。我怎么做?如何为不同的子菜单设置不同的样式? 谢谢!
答案 0 :(得分:1)
考虑使用样式资源,如:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<Style x:Key="myStyleKey" TargetType="MenuItem">
<!-- Your style definition goes here -->
</Style>
</Window.Resources>
<Grid>
<Menu x:Name="mainMenu">
<MenuItem x:Name="mainSubMenu" Header="Menus">
<MenuItem x:Name="topMenuItem" Header="TopSubMenu">
<MenuItem/>
<MenuItem/>
<MenuItem/>
</MenuItem>
<Separator/>
<!-- Set style here -->
<MenuItem Style="{StaticResource myStyleKey}" x:Name="middleMenuItem" Header="MiddleSubMenu">
<MenuItem Header="MI1"/>
<MenuItem Header="MI2"/>
<MenuItem Header="MI3"/>
<MenuItem Header="MI4"/>
</MenuItem>
<Separator/>
<MenuItem x:Name="bottomMenuItem" Header="Bottom" />
</MenuItem>
</Menu>
</Grid>
</Window>
您可以单独为每个菜单项使用此模式。
答案 1 :(得分:0)
是的,给你的样式一个键,并通过该键指定你想要在每个MenuItem上的样式:
e.g。
<Style x:Key="MyStyle1" TargetType="{x:Type MenuItem}">
<blahblahblah/>
</Style>
<MenuItem Style="{StaticResource MyStyle1}">
HTH!
Janene