无法为IsPressed事件设置MenuItem的Background属性

时间:2011-01-05 17:04:55

标签: wpf wpf-controls styling

我想在按下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。 alt text

1 个答案:

答案 0 :(得分:1)

试试这个...不会在MenuItem前面添加属性名称,并修改TargetTypex: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>

编辑:

根据您的更新,请查看默认MenuItemconstructed via XAML的方式。这应该可以帮助您为MenuItem的不同部分提供样式。请注意在Role样式中使用MenuItem属性处理顶级和子级别的标题和项目。