3
私は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"
スタイルの中にそれを持っているので、両方のコントロールテンプレートが "きれい"です。
スタイル要素を2番目のControlTemplate
から移動するにはどうすればよいですか?