在 Main.xaml 中,我有这两个菜单项:
- 第一个带有标题=断开电流
- 第二个带标题=Quit
- ...
- 更多具有不同标题文本的菜单项...
为了编辑第一个项目的一些颜色,我在 App.xaml 中创建了一个自定义模板:
<!--Template for Menu Items-->
<Style x:Key="MenuItemBaseStyle" TargetType="MenuItem">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Background" Value="#0a99f3" />
<Setter Property="Foreground" Value="White"/>
</Trigger>
</Style.Triggers>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type MenuItem}">
<Grid Background="{TemplateBinding Background}">
<MenuItem Header="DISCONNECT FROM CURRENT" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
在 Main.xaml 中:
<MenuItem Header="CONNECTION">
<MenuItem Style="{StaticResource MenuItemBaseStyle}" Header="DISCONNECT FROM CURRENT" />
<MenuItem Header="QUIT"/>
</MenuItem>
现在我想对第二个菜单项执行相同的操作。问题在于不同的标头。如果我从模板中删除标题,即使标题文本仍然存在于 Main.xaml 中,它也不会显示任何标题
如何将此模板用于许多唯一更改的是标题文本的菜单项?
你可以只使用模板绑定 http://msdn.microsoft.com/en-us/library/cc189062(v=vs.95).aspx on the Header http://msdn.microsoft.com/en-us/library/system.windows.controls.headereditemscontrol.header(v=vs.110).aspx属性的使用方式与您在Background
财产:
<ControlTemplate TargetType="{x:Type MenuItem}">
<Grid Background="{TemplateBinding Background}">
<MenuItem Header="{TemplateBinding Header}" />
</Grid>
</ControlTemplate>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)