2016-04-26 13 views
1

私はMetroDarkテーマを使用して私のWPFアプリケーションをスキンしますが、残念なことにMenuItemはありません。だから私は、メニュー項目の四つの状態の前景色と背景を変更したい:WPF - トリガーでサブメニューアイテムスタイルを設定

  • 通常
  • が無効になっ
  • を押し推移

は、これまでのところ私はこのようなコードを持って、そして何をマウスがメニュー項目をホバリングしたときにフォアグラウンドと背景に設定されます:

<Menu Background="#FF181818" Foreground="#FFABABAB" > 
    <Menu.Resources> 
     <Style x:Key="{x:Type MenuItem}" > 
      <Style.Setters> 
       <Setter Property="MenuItem.Background" Value="#FF181818" /> 
       <Setter Property="MenuItem.Foreground" Value="#FFABABAB" /> 
      </Style.Setters> 
      <Style.Triggers> 
       <Trigger Property="MenuItem.IsMouseOver" Value="True"> 
        <Setter Property="MenuItem.Background" Value="Green" /> 
        <Setter Property="MenuItem.Foreground" Value="Red" /> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </Menu.Resources> 
    <MenuItem Header="File"> 
     <MenuItem Header="New" Command="ApplicationCommands.New"></MenuItem> 
     <MenuItem Header="Open" Command="ApplicationCommands.Open"></MenuItem> 
     <MenuItem Header="Save" Command="ApplicationCommands.Save"></MenuItem> 
     <MenuItem Header="Save As" Command="ApplicationCommands.SaveAs"></MenuItem> 
     <Separator Background="#FF181818" Foreground="#FFABABAB"></Separator> 
     <MenuItem Header="Delete" Command="ApplicationCommands.Delete"></MenuItem> 
     <MenuItem Header="Quit" Click="Quit_MenuItem_Click"></MenuItem> 
    </MenuItem> 
    <MenuItem Header="Format" Click="Format_MenuItem_Click" ></MenuItem> 
    <MenuItem Header="About" ></MenuItem> 
</Menu> 

結果は です。しかし、背景の設定は、Menuの直接の子であるMenuItemに対してのみ機能し、サブメニュー項目は機能しません。

enter image description here

enter image description here

私が関連する可能性があるこのStyled MenuItem on WPFを、気づきました。しかし、私の質問は、私はControlTemplateなしでこれを修正できますか? IsDisabledやIsPressedなど、他のすべての州にソリューションを適用することができます。

ありがとうございます!

答えて

0

テンプレートを変更する必要があります。ブレンド内ではとても簡単です。 BlendでSimpleMenuItemを作成し、そのテンプレートのコピーを編集することをお勧めします。それらは、デフォルトテンプレートimoで動作するのが少し楽です。

関連する問題