FrameworkElement.ContextMenuOpening FrameworkElement.ContextMenuOpening FrameworkElement.ContextMenuOpening FrameworkElement.ContextMenuOpening Event

Definition

Tritt ein, wenn ein Kontextmenü des Elements geöffnet wird.Occurs when any context menu on the element is opened.

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 

Hinweise

Zum manuellen Öffnen des Kontextmenüs sollte die Handler für die Ereignisse das relevante Ereignis als behandelt markieren.To manually open context menus, handlers of the events should mark the relevant event as handled. Andernfalls den vorhandenen Wert von der ContextMenu Eigenschaft wird verwendet, um automatisch ein Kontextmenü geöffnet.Otherwise, the existing value of the ContextMenu property will be used to automatically open a context menu. Das Ereignis als behandelt markiert wird effektiv die Default-Aktion abgebrochen, und könnte eine Möglichkeit, den Wert eines Zurücksetzen der ContextMenu Eigenschaft und öffnen Sie dann auf die neue ContextMenu.Marking the event handled will effectively cancel the default action, and could be an opportunity to reset the value of the ContextMenu property and then open the new ContextMenu. Es ist jedoch ein Problem der zeitlichen Steuerung, die Sie kennen müssen.However, there is a timing issue you should be aware of. Um vollständig ersetzen Sie im Kontextmenü über eine ContextMenuOpening Handler auf, das Kontextmenü für die erste darf nicht null oder leer sein.In order to completely replace the context menu through a ContextMenuOpening handler, the initial context menu must not be null / empty. Alternativ müssen Sie das Ereignis zu behandeln, und klicken Sie dann manuell ein neues Kontextmenü geöffnet.Alternatively, you might need to handle the event and then manually open a new context menu. Weitere Informationen finden Sie unter Vorgehensweise: Behandeln des ContextMenuOpening-Ereignisses.For details, see How to: Handle the ContextMenuOpening Event.

Verwenden Sie dieses Ereignis als ein EventTrigger in einem Stil, müssen Sie auf das zugrunde liegende angefügte Ereignis verweisen:To use this event as an EventTrigger in a style, you must reference the underlying attached event:

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

(Diese Verwendung ist erforderlich, da die Implementierung von Ereignissen auf FrameworkElement , macht das zugrunde liegende Dienstereignis keine Zuordnung für ist die ContextMenuOpening Bezeichner so, dass Sie ihn in Triggern verwenden können).(This usage is required because the event implementation on FrameworkElement that exposes the underlying service event does not map the ContextMenuOpening identifier such that you can use it in triggers).

ContextMenu selbst ist ein FrameworkElement abgeleitete Klasse, aber dieses Ereignis wird nicht aus dem Kontextmenü geöffnet wird, als Quelle ausgelöst werden.ContextMenu itself is a FrameworkElement derived class, but this event will not be raised from the context menu being opened as a source. Das Ereignis wird vom Element ausgelöst, die "besitzt" das Kontextmenü als eine Eigenschaft und wird nur ausgelöst, wenn ein Benutzer versucht, ein Kontextmenü geöffnet, in der Benutzeroberfläche.The event is raised from the element that "owns" the context menu as a property and is only raised when a user attempts to open a context menu in the UI. Es ist möglich, dass ContextMenu selbst haben ein ContextMenu -Eigenschaft, aber Sie sollten dieses Szenario vermeiden (Weitere Informationen finden Sie unter FrameworkElement.ContextMenu).It is possible for ContextMenu itself to have a ContextMenu property, but you should avoid this scenario (for details, see FrameworkElement.ContextMenu).

Die ContextMenu Klasse selbst verfügt auch über ein ähnliches Ereignis (Opened) jedoch Opened zeigt Ihnen die Möglichkeit zum Abbruch der Benutzeraktion.The ContextMenu class itself also has a similar event (Opened) but Opened does not provide you the opportunity to cancel the user action.

Informationen zum RoutingereignisRouted Event Information

Feld "ID"Identifier field ContextMenuOpeningEvent
Routing-StrategieRouting strategy BubblingBubbling
delegateDelegate ContextMenuEventHandler
  • Außer Kraft setzen OnContextMenuOpening um eine Klassenbehandlung für dieses Ereignis in abgeleiteten Klassen zu implementieren.Override OnContextMenuOpening to implement class handling for this event in derived classes.

Gilt für:

Siehe auch