FrameworkElement.ContextMenuOpening 事件

定義

當項目上的任何內容功能表開啟時發生。

C#
public event System.Windows.Controls.ContextMenuEventHandler ContextMenuOpening;

事件類型

備註

若要手動開啟操作功能表,事件的處理常式應將相關事件標示為已處理。 否則,屬性的現有值 ContextMenu 將用來自動開啟操作功能表。 標記處理的事件將會有效地取消預設動作,而且可能是重設 ContextMenu 屬性值的機會,然後開啟新的 ContextMenu 。 不過,您應該注意的時間問題。 若要透過 ContextMenuOpening 處理常式完全取代操作功能表,初始操作功能表不得為 null / 空白。 或者,您可能需要處理事件,然後手動開啟新的操作功能表。 如需詳細資訊,請參閱 如何:處理 CoNtextMenuOpening 事件

若要在樣式中使用這個事件作為 EventTrigger ,您必須參考基礎附加事件:

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

(這是必要用法,因為公開基礎服務事件的事件 FrameworkElement 實作不會對應 ContextMenuOpening 識別碼,因此您可以在觸發程式) 使用它。

ContextMenu 本身是 FrameworkElement 衍生類別,但此事件將不會從開啟為來源的操作功能表引發。 事件會從「擁有」操作功能表做為屬性的專案引發,而且只有在使用者嘗試在 UI 中開啟操作功能表時才會引發。 ContextMenu您可以自行擁有 ContextMenu 屬性,但您應該避免此案例 (以取得詳細資料,請參閱 FrameworkElement.ContextMenu) 。

類別 ContextMenu 本身也有類似的事件 (Opened) ,但 Opened 無法讓您有機會取消使用者動作。

路由事件資訊

識別碼欄位 ContextMenuOpeningEvent
路由策略 鼓 泡
代理人 ContextMenuEventHandler

適用於

產品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

另請參閱