2017-08-31 90 views
-1

请我需要一种方法来与像这些styled Image用的样式WPF的MenuItems一个按钮

款式,而且这是当前一个我使用Unstyled Image

请,如果你能帮忙的可能一个链接,代码,教程如何完成它,我将不胜感激。谢谢..

+1

这将是启动https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/menu-styles-and-templates的地方 – Ada

回答

0

修改样式的菜单项(WPF)的是复杂得多,它似乎,因为相同的菜单项控制使用不同的模板取决于角色分配给每个菜单项:SubmenuItemTopLevelHeader子菜单标题。 使用菜单栏不应该有任何问题:如果需要,您可以像使用其他控件一样定义样式和模板。对于菜单项,尝试这样的事情:

<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依赖属性,定义在我们的风格这些触发器:

<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> 

我希望这对你的作品;当我遇到同样的问题时,它对我有用。
祝你好运,好的代码。