ContextMenuService 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供用于显示 ContextMenu 的系统实现。
public ref class ContextMenuService abstract sealed
public static class ContextMenuService
type ContextMenuService = class
Public Class ContextMenuService
- 继承
-
ContextMenuService
示例
以下示例将相同的 ContextMenu 分配给两个按钮,并将 HasDropShadow、Placement、PlacementRectangleHorizontalOffset、 和 VerticalOffset 属性设置为ContextMenu每个按钮的不同位置。
<StackPanel>
<StackPanel.Resources>
<ContextMenu x:Key="myContextMenu">
<MenuItem Header="Item"/>
</ContextMenu>
</StackPanel.Resources>
<!--Both buttons use the same ContextMenu but use the
properties on ContextMenuService to position them
differently.-->
<Button ContextMenu="{StaticResource myContextMenu}"
ContextMenuService.HasDropShadow="False"
ContextMenuService.Placement="Relative"
ContextMenuService.HorizontalOffset="50"
ContextMenuService.VerticalOffset="-10">
button 1
</Button>
<Button ContextMenu="{StaticResource myContextMenu}"
ContextMenuService.HasDropShadow="True"
ContextMenuService.Placement="Right"
ContextMenuService.PlacementRectangle="0,0,30,30">
button 2
</Button>
</StackPanel>
以下示例演示如何使用 服务在禁用的按钮上显示 ContextMenu 。 请注意,在上下文菜单的父级按钮上设置 ShowOnDisabled 属性。
<Button Height="30" Content="Disabled Button" IsEnabled="False"
ContextMenuService.ShowOnDisabled="True">
<Button.ContextMenu>
<ContextMenu>
<MenuItem Header="Item 1"/>
<MenuItem Header="Item 2"/>
<MenuItem Header="Item 3"/>
</ContextMenu>
</Button.ContextMenu>
</Button>
注解
类 ContextMenuService 提供可用于指定上下文菜单的外观和位置的附加属性。 类中的 ContextMenuService 许多属性也由 ContextMenu定义。 有时,使用 ContextMenuService 类设置属性比在 上 ContextMenu设置属性更方便。 例如,可以创建 ContextMenu 要由多个元素共享的 ,但使用 ContextMenuService 类为每个元素指定不同的 位置 ContextMenu 。 以下属性由 ContextMenu 和 ContextMenuService 类定义。 如果在 和 ContextMenuService上ContextMenu都设置了这些属性中的任何一个,则使用 中的ContextMenuService属性值。
还可以使用 ContextMenuService 在禁用的项上显示菜单。
字段
ContextMenuClosingEvent |
标识 ContextMenuClosing 路由事件。 |
ContextMenuOpeningEvent |
标识 ContextMenuOpening 附加事件。 |
ContextMenuProperty |
标识 ContextMenu 附加属性。 |
HasDropShadowProperty |
标识 HasDropShadow 附加属性。 |
HorizontalOffsetProperty |
标识 HorizontalOffset 附加属性。 |
IsEnabledProperty |
标识 IsEnabled 附加属性。 |
PlacementProperty |
标识 Placement 附加属性。 |
PlacementRectangleProperty |
标识 PlacementRectangle 附加属性。 |
PlacementTargetProperty |
标识 PlacementTarget 附加属性。 |
ShowOnDisabledProperty |
标识 ShowOnDisabled 附加属性。 |
VerticalOffsetProperty |
标识 VerticalOffset 附加属性。 |
附加属性
ContextMenu |
获取或设置 ContextMenu 的内容。 |
HasDropShadow |
获取或设置指示 ContextMenu 是否已启用投影效果的值。 |
HorizontalOffset |
获取或设置指示沿 x 方向相对于父控件放置 ContextMenu 的位置的值。 |
IsEnabled |
获取或设置指示是否可以显示 ContextMenu 的值。 |
Placement |
获取或设置指定 ContextMenu 相对于 PlacementTarget 或 PlacementRectangle 的位置的值。 |
PlacementRectangle |
获取或设置上下文菜单打开时与其所在位置相对的区域。 |
PlacementTarget |
获取或设置 ContextMenu 的父控件。 |
ShowOnDisabled |
获取或设置指示是否在 ContextMenu 的父级变为灰色时应显示该项的值。 |
VerticalOffset |
获取或设置指示沿 y 方向相对于父控件放置 ContextMenu 的位置的值。 |
方法
附加活动
ContextMenuClosing |
当 ContextMenu 关闭时发生。 |
ContextMenuOpening |
在 ContextMenu 打开时发生。 |