如何从菜单项完全自定义弹出窗口
本文关键字:自定义 窗口 菜单项 | 更新日期: 2023-09-27 18:08:00
我在 XAML 中有正常的菜单。我想完全更改单击菜单项时显示的弹出窗口的外观。
我正在寻找这样的东西:
<Menu>
<MenuItem Header="MyCustomMenu">
<MenuItem.PopupTemplate>
<ControlTemplate>
<Image Source="SexyImage"/>
</ControlTemplate>
</MenuItem.PopupTemplate>
</MenuItem>
</Menu>
您需要覆盖MenuItem
的模板,因为弹出窗口是其中的一部分,请查看默认模板以了解模板的外观。 MenuItem
有一个TemplatePartAttribute
所述弹出窗口。
在应用程序的资源中定义以下样式:
MenuItem 的样式重写示例:
<Style TargetType="MenuItem">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="MenuItem">
.... here is your custom template
上下文菜单样式覆盖:
<Style TargetType="ContextMenu">
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="Grid.IsSharedSizeScope" Value="true"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ContextMenu">