WPF上下文菜单样式结构
我想重新设计WPF上下文菜单样式结构,wpf,styles,contextmenu,menuitem,Wpf,Styles,Contextmenu,Menuitem,我想重新设计上下文菜单,但我有一个关于如何构造Xaml的问题 在我的应用程序资源中,我有如下内容: <ControlTemplate TargetType="MenuItem" x:Key="MenuItemTemplate"> ... </ControlTemplate> <ControlTemplate TargetType="ContextMenu" x:Key="ContextMenuTemplate"> <ControlTem
上下文菜单
,但我有一个关于如何构造Xaml的问题
在我的应用程序资源中,我有如下内容:
<ControlTemplate TargetType="MenuItem" x:Key="MenuItemTemplate">
...
</ControlTemplate>
<ControlTemplate TargetType="ContextMenu" x:Key="ContextMenuTemplate">
<ControlTemplate.Resources>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Template" Value="{StaticResource MenuItemTemplate}" />
</Style>
</ControlTemplate.Resources>
...
</ControlTemplate>
<Style TargetType="{x:Type ContextMenu}" x:Key="RadialContextMenu">
<Setter Property="Template" Value="{StaticResource ContextMenuTemplate}" />
</Style>
但是,我不喜欢有ControlTemplate.Resources
部分。例如,我更愿意将它放在x:Key=“RadialContextMenu”
样式中,这样两个控件模板都是“干净的”
如何将样式元素移出第二个ControlTemplate
?尝试以下操作:
<Style TargetType="{x:Type ContextMenu}" x:Key="RadialContextMenu">
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Template" Value="{StaticResource MenuItemTemplate}" />
</Style>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type ContextMenu}" x:Key="RadialContextMenu">
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Template" Value="{StaticResource MenuItemTemplate}" />
</Style>
</Setter.Value>
</Setter>
</Style>