Поделиться через


FrameworkElement.ContextMenuOpening Событие

Определение

Происходит при открытии любого контекстного меню элемента.

public:
 event System::Windows::Controls::ContextMenuEventHandler ^ ContextMenuOpening;
public event System.Windows.Controls.ContextMenuEventHandler ContextMenuOpening;
member this.ContextMenuOpening : System.Windows.Controls.ContextMenuEventHandler 
Public Custom Event ContextMenuOpening As ContextMenuEventHandler 

Тип события

Комментарии

Чтобы вручную открыть контекстное меню, обработчики событий должны пометить соответствующее событие как обработанное. В противном случае существующее значение свойства будет использоваться для автоматического ContextMenu открытия контекстного меню. Пометка обработанного события фактически отменит действие по умолчанию и может быть возможностью сброса значения ContextMenu свойства, а затем открыть новое ContextMenu. Тем не менее, существует проблема с временем, о которых вы должны знать. Чтобы полностью заменить контекстное меню обработчиком ContextMenuOpening , начальное контекстное меню не должно быть пустым или пустым. Кроме того, может потребоваться обработать событие, а затем вручную открыть новое контекстное меню. Дополнительные сведения см. в разделе "Практическое руководство. Обработка события ContextMenuOpening".

Чтобы использовать это событие в стиле EventTrigger , необходимо ссылаться на базовое присоединенное событие:

<EventTrigger RoutedEvent="ContextMenuService.ContextMenuOpening">
  <!-- storyboard here ... -->
</EventTrigger>

(Это требуется, так как реализация события, FrameworkElement которая предоставляет базовое событие службы, не сопоставляет ContextMenuOpening идентификатор, который можно использовать в триггерах).

ContextMenu Сам по себе является производным классом FrameworkElement , но это событие не будет вызываться из контекстного меню, открываемого в качестве источника. Событие возникает из элемента, который владеет контекстным меню в качестве свойства и вызывается только при попытке пользователя открыть контекстное меню в пользовательском интерфейсе. Для себя можно ContextMenu использовать ContextMenu свойство, но следует избежать этого сценария (дополнительные сведения см. в статье FrameworkElement.ContextMenu).

Сам ContextMenu класс также имеет аналогичное событие (Opened), но Opened не предоставляет возможность отменить действие пользователя.

Сведения о перенаправленных событиях

Элемент Ценность
Поле идентификатора ContextMenuOpeningEvent
Стратегия маршрутизации Восходящей
Делегат ContextMenuEventHandler
  • Переопределите OnContextMenuOpening , чтобы реализовать обработку классов для этого события в производных классах.

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

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