Я хотел бы восстановить 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"
, так что оба шаблона управления являются «чистыми».
Как перенести элемент стиля из второго ControlTemplate
?