ContextMenuService 类

定义

提供用于显示 ContextMenu 的系统实现。

public ref class ContextMenuService abstract sealed
public static class ContextMenuService
type ContextMenuService = class
Public Class ContextMenuService
继承
ContextMenuService

示例

以下示例将相同的 ContextMenu 分配给两个按钮,并将 HasDropShadowPlacementPlacementRectangleHorizontalOffset、 和 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 。 以下属性由 ContextMenuContextMenuService 类定义。 如果在 和 ContextMenuServiceContextMenu都设置了这些属性中的任何一个,则使用 中的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 相对于 PlacementTargetPlacementRectangle 的位置的值。

PlacementRectangle

获取或设置上下文菜单打开时与其所在位置相对的区域。

PlacementTarget

获取或设置 ContextMenu 的父控件。

ShowOnDisabled

获取或设置指示是否在 ContextMenu 的父级变为灰色时应显示该项的值。

VerticalOffset

获取或设置指示沿 y 方向相对于父控件放置 ContextMenu 的位置的值。

方法

AddContextMenuClosingHandler(DependencyObject, ContextMenuEventHandler)

ContextMenuClosing 附加事件添加处理程序。

AddContextMenuOpeningHandler(DependencyObject, ContextMenuEventHandler)

ContextMenuOpening 附加事件添加处理程序。

GetContextMenu(DependencyObject)

获取指定对象的 ContextMenu 属性的值。

GetHasDropShadow(DependencyObject)

获取指示 ContextMenu 是否有投影的值。

GetHorizontalOffset(DependencyObject)

获取指定对象的 HorizontalOffset 属性的值。

GetIsEnabled(DependencyObject)

获取指定对象的 IsEnabled 属性的值。

GetPlacement(DependencyObject)

获取指定对象的 Placement 属性的值。

GetPlacementRectangle(DependencyObject)

获取指定对象的 PlacementRectangle 属性的值。

GetPlacementTarget(DependencyObject)

获取指定对象的 PlacementTarget 属性的值。

GetShowOnDisabled(DependencyObject)

获取指定对象的 ShowOnDisabled 属性的值。

GetVerticalOffset(DependencyObject)

获取指定对象的 VerticalOffset 属性的值。

RemoveContextMenuClosingHandler(DependencyObject, ContextMenuEventHandler)

移除 ContextMenuClosing 附加事件的处理程序。

RemoveContextMenuOpeningHandler(DependencyObject, ContextMenuEventHandler)

移除 ContextMenuOpening 附加事件的处理程序。

SetContextMenu(DependencyObject, ContextMenu)

设置指定对象的 ContextMenu 属性的值。

SetHasDropShadow(DependencyObject, Boolean)

设置指示 ContextMenu 是否有投影的值。

SetHorizontalOffset(DependencyObject, Double)

设置指定对象的 HorizontalOffset 属性的值。

SetIsEnabled(DependencyObject, Boolean)

设置指定对象的 IsEnabled 属性的值。

SetPlacement(DependencyObject, PlacementMode)

设置指定对象的 Placement 属性的值。

SetPlacementRectangle(DependencyObject, Rect)

设置指定对象的 PlacementRectangle 属性的值。

SetPlacementTarget(DependencyObject, UIElement)

设置指定对象的 PlacementTarget 属性的值。

SetShowOnDisabled(DependencyObject, Boolean)

设置指定对象的 ShowOnDisabled 属性的值。

SetVerticalOffset(DependencyObject, Double)

设置指定对象的 VerticalOffset 属性的值。

附加活动

ContextMenuClosing

ContextMenu 关闭时发生。

ContextMenuOpening

ContextMenu 打开时发生。

适用于

另请参阅