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、このシナリオは避ける必要があります (詳細については、「」を参照してくださいFrameworkElement.ContextMenu)。ContextMenu
ContextMenuクラス自体にも同様のイベント (Opened) がありますが、Openedユーザー アクションを取り消す機会はありません。
ルーティングされたイベント情報
識別子フィールド | ContextMenuOpeningEvent |
ルーティング戦略 | バブル |
代理人 | ContextMenuEventHandler |
- 派生クラスでこのイベントのクラス処理を実装するには、 をオーバーライド OnContextMenuOpening します。
適用対象
こちらもご覧ください
.NET