Je voudrais redéfinir un ContextMenu
, mais j'ai une question sur la façon de structurer mon Xaml.WPF ContextMenu Structure de style
Dans mes ressources d'application, j'ai quelque chose comme ceci:
<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>
Cela semble fonctionner correctement, les menus contextuels avec le style ContextMenuTemplate
styler éléments de menu et d'autres menus contextuels ne sont pas affectés, sans avoir à mettre un style explicitement sur tout MenuItems
.
<ContextMenu x:Name="menu" Style="{StaticResource RadialContextMenu}">
<MenuItem Header="Foo"/>
<MenuItem Header="Bar"/>
</ContextMenu>
Cependant, je n'aime pas avoir cette section ControlTemplate.Resources
. Je préfère l'avoir par exemple dans le style x:Key="RadialContextMenu"
, de sorte que les deux modèles de contrôle soient "propres".
Comment puis-je déplacer l'élément Style de la seconde ControlTemplate
?