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