我想在按下MenuItem时更改MenuItem的背景。
<Style x:Key="{x:Type MenuItem}" TargetType="MenuItem">
<Style.Triggers>
<Trigger Property="MenuItem.IsPressed" Value="True">
<Setter Property="MenuItem.Background" Value="#FFE389" />
<Setter Property="MenuItem.BorderBrush" Value="#C2762B" />
</Trigger>
</Style.Triggers>
</Style>
我尝试过以上操作,但触发器似乎不起作用。触发器是错误的吗?
更新:它适用于事件IsMouseOver,但IsPressed似乎不起作用
更新2:它适用于TopLevelMenuItems,但不适用于TopLevelMenuHeaderItems。
答案 0 :(得分:1)
试试这个...不会在MenuItem
前面添加属性名称,并修改TargetType
和x:Key
语法......
<Style x:Key="MyStyle" TargetType="{x:Type MenuItem}">
<Style.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="#FFE389" />
<Setter Property="BorderBrush" Value="#C2762B" />
</Trigger>
</Style.Triggers>
</Style>
编辑:
根据您的更新,请查看默认MenuItem
是constructed via XAML的方式。这应该可以帮助您为MenuItem
的不同部分提供样式。请注意在Role
样式中使用MenuItem
属性处理顶级和子级别的标题和项目。