Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 无法为iPressed事件设置MenuItem的后台属性_Wpf_Wpf Controls_Styling - Fatal编程技术网

Wpf 无法为iPressed事件设置MenuItem的后台属性

Wpf 无法为iPressed事件设置MenuItem的后台属性,wpf,wpf-controls,styling,Wpf,Wpf Controls,Styling,我想在按下菜单项时更改菜单项的背景 <Style x:Key="{x:Type MenuItem}" TargetType="MenuItem"> <Style.Triggers> <Trigger Property="MenuItem.IsPressed" Value="True"> <Setter Property="MenuItem.Background" Value="#FFE389" />

我想在按下菜单项时更改菜单项的背景

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

试试这个……它不在属性名称前面加上
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
是如何使用的。这将为
MenuItem
的不同部分提供样式设置。注意在
菜单项
样式中使用
角色
属性处理顶级和下级的标题和项目。

@Proximo添加了对MSDN菜单项默认样式的引用,应该可以帮助您找到需要的地方