FrameworkElement.ContextMenuOpening 事件
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
當項目上的任何內容功能表開啟時發生。
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 處理常式完全取代操作功能表,初始操作功能表不得為 null / 空白。 或者,您可能需要處理事件,然後手動開啟新的操作功能表。 如需詳細資訊,請參閱 如何:處理 CoNtextMenuOpening 事件。
若要在樣式中使用這個事件作為 EventTrigger ,您必須參考基礎附加事件:
<EventTrigger RoutedEvent="ContextMenuService.ContextMenuOpening">
<!-- storyboard here ... -->
</EventTrigger>
(這是必要用法,因為公開基礎服務事件的事件 FrameworkElement 實作不會對應 ContextMenuOpening 識別碼,因此您可以在觸發程式) 使用它。
ContextMenu 本身是 FrameworkElement 衍生類別,但此事件將不會從開啟為來源的操作功能表引發。 事件會從「擁有」操作功能表做為屬性的專案引發,而且只有在使用者嘗試在 UI 中開啟操作功能表時才會引發。 ContextMenu您可以自行擁有 ContextMenu 屬性,但您應該避免此案例 (以取得詳細資料,請參閱 FrameworkElement.ContextMenu) 。
類別 ContextMenu 本身也有類似的事件 (Opened) ,但 Opened 無法讓您有機會取消使用者動作。
路由事件資訊
識別碼欄位 | ContextMenuOpeningEvent |
路由策略 | 鼓 泡 |
代理人 | ContextMenuEventHandler |
- 覆寫 OnContextMenuOpening 以在衍生類別中實作這個事件的類別處理。