2017-08-31 6 views
-1

私は、これらのstyled ImageのMenuItem WPFとボタンの装飾

のようなスタイルを考え出す方法が必要です。しかし、これは私はあなたが多分に助けることができるしてください場合Unstyled Image

を使用している現在のものですしてくださいリンク、コード、チュートリアル、それを行う方法については、私は非常に感謝します。同じのMenuItemコントロールは、それぞれのMenuItemに割り当てられ役割に応じて、異なるテンプレートを使用するためのおかげで...のMenuItem(WPF)のスタイルを変更する

+1

これは、https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/menu-styles-and-templatesを起動する場所になります。 – Ada

答えて

0

は、それが見えるかもしれないよりも複雑である:SubmenuItemTopLevelHeaderおよびサブメニューヘッダー。 メニューバーでは問題はありません。必要に応じて、他のコントロールと同様にスタイルとテンプレートを定義できます。 MenuItemのために、このような何かを試してみてください。私は願っています

<Style x:Key="MyMenuItemStyle" TargetType="{x:Type local:MyMenuItem}"> 
    <Setter Property="OverridesDefaultStyle" Value="True"/> 
    <Style.Triggers> 
     <Trigger Property="Role" Value="TopLevelHeader"> 
      <Setter Property="Template" Value="{StaticResource {x:Static MenuItem.TopLevelHeaderTemplateKey}}"/> 
     </Trigger> 
     <Trigger Property="Role" Value="TopLevelItem"> 
      <Setter Property="Template" Value="{StaticResource {x:Static MenuItem.TopLevelItemTemplateKey}}"/> 
     </Trigger> 
     <Trigger Property="Role" Value="SubmenuHeader"> 
      <Setter Property="Template" Value="{StaticResource {x:Static MenuItem.SubmenuHeaderTemplateKey}}"/> 
     </Trigger> 
     <Trigger Property="Role" Value="SubmenuItem"> 
      <Setter Property="Template" Value="{StaticResource {x:Static MenuItem.SubmenuItemTemplateKey}}"/> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

これはあなたのために働く:

<ControlTemplate x:Key="{x:Static MenuItem.SubmenuItemTemplateKey}" TargetType="{x:Type local:MyMmenuItem}"> 
... 
</ControlTemplate> 
<ControlTemplate x:Key="{x:Static MenuItem.TopLevelHeaderTemplateKey}" TargetType="{x:Type local:MyMenuItem}"> 
... 
</ControlTemplate> 
<ControlTemplate x:Key="{x:Static MenuItem.SubmenuHeaderTemplateKey}" TargetType="{x:Type local:MyMenuItem}"> 
... 
</ControlTemplate> 

を、別のテンプレートを切り替えるために、私たちは私たちのスタイルでこれらのトリガーを定義し、RoleProperty依存関係プロパティを使用します。 ;私が同じ問題に直面したとき、それは私のために働いた。
幸運にも、良いコードです。

関連する問題