ContextMenuService Класс

Определение

Предоставляет системную реализацию для отображения объекта ContextMenu.

public static class ContextMenuService
Наследование
ContextMenuService

Примеры

В следующем примере две кнопки назначаются ContextMenu одинаково и свойства HasDropShadow, PlacementRectanglePlacement, , HorizontalOffsetи 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 . Если какое-либо из этих свойств задано как для , так ContextMenu и ContextMenuServiceдля , используется значение свойства из 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

Получает или задает значение, показывающее, где располагается объект ContextMenu вдоль x-направления по отношению к родительскому элементу управления.

IsEnabled

Получает или задает значение, указывающее, может ли отображаться объект ContextMenu.

Placement

Получает или задает значение, показывающее расположение объекта ContextMenu относительно PlacementTarget или PlacementRectangle.

PlacementRectangle

Получает или задает область, относительно которой позиционируется контекстное меню при открытии.

PlacementTarget

Получает или задает родительский элемент управления для объекта ContextMenu.

ShowOnDisabled

Получает или задает значение, показывающее, должен ли отображаться объект ContextMenu, когда его родительский элемент становится недоступным.

VerticalOffset

Получает или задает значение, показывающее, где располагается объект ContextMenu вдоль y-направления по отношению к родительскому элементу управления.

Методы

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.

Применяется к

Продукт Версии
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

См. также раздел