我创建了自定义控件,并且在该样式中菜单项不起作用我使用了BasedOn键来应用样式
通用XAML代码段
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication3">
<Style x:Key="MenuItemStyle" TargetType="{x:Type MenuItem}">
<Setter Property="Height" Value="60"/>
<Setter Property="Background" Value="Red"/>
</Style>
<Style BasedOn="{StaticResource ResourceKey=MenuItemStyle}" TargetType="{x:Type MenuItem}"/>
<Style TargetType="{x:Type local:CustomControl1}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:CustomControl1}">
<Grid x:Name="MainGrid">
<Menu>
<MenuItem Header="File" />
</Menu>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
该样式不适用于MenuItem,而添加样式如下代码正在工作,如何使用基于此实现此功能,因为在我的scnorio中我使用了多个menuitems
答案 0 :(得分:0)
你有两个选择
从样式中删除密钥
例如
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Height" Value="60"/>
<Setter Property="Background" Value="Red"/>
</Style>
这会将此样式应用于范围内的所有菜单项。
注意:如果您发现它不适合您,请尝试在菜单资源中定义样式。
或直接将样式应用于菜单项,将样式保留为样式
例如
<MenuItem Header="File" Style="{StaticResource MenuItemStyle}"/>
这会将样式仅应用于所需的菜单项
这种风格没有任何用途
<Style BasedOn="{StaticResource ResourceKey=MenuItemStyle}" TargetType="{x:Type MenuItem}"/>