3
我想restyle ContextMenu
,但我有一個關於如何構建我的Xaml的問題。WPF ContextMenu風格結構
在我的應用程序資源,我有這樣的事情:
<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>
這似乎做工精細,上下文菜單與ContextMenuTemplate
風格有風格的菜單項,和其他的上下文菜單不受影響,而不必設置任何MenuItems
明確風格。
<ContextMenu x:Name="menu" Style="{StaticResource RadialContextMenu}">
<MenuItem Header="Foo"/>
<MenuItem Header="Bar"/>
</ContextMenu>
但是,我不喜歡有那個ControlTemplate.Resources
部分。我寧願讓它在x:Key="RadialContextMenu"
風格的內部,以便兩個控件模板都是「乾淨的」。
如何將Style元素移出第二個ControlTemplate
?