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


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 , чтобы реализовать обработку класса для этого события в производных классах.

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

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