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