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

Définition

Se produit lorsqu'un menu contextuel sur l'élément est ouvert.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 

Remarques

Pour ouvrir manuellement des menus contextuels, gestionnaires des événements doivent marquer l’événement comme étant géré.To manually open context menus, handlers of the events should mark the relevant event as handled. Sinon, la valeur existante de la ContextMenu propriété sera utilisée pour ouvrir automatiquement un menu contextuel.Otherwise, the existing value of the ContextMenu property will be used to automatically open a context menu. Marquage de l’événement géré annule effectivement l’action par défaut et peut être une opportunité pour réinitialiser la valeur de la ContextMenu propriété, puis ouvrez le nouveau 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. Toutefois, il existe un problème de synchronisation que vous devez connaître.However, there is a timing issue you should be aware of. Pour remplacer complètement le menu contextuel via un ContextMenuOpening gestionnaire, le menu contextuel initial ne doit pas être null / vide.In order to completely replace the context menu through a ContextMenuOpening handler, the initial context menu must not be null / empty. Ou bien, vous devrez peut-être gérer l’événement et ouvrez manuellement un nouveau menu contextuel.Alternatively, you might need to handle the event and then manually open a new context menu. Pour plus d’informations, consultez Guide pratique pour Gérer l’événement ContextMenuOpening.For details, see How to: Handle the ContextMenuOpening Event.

Pour utiliser cet événement comme un EventTrigger dans un style, vous devez référencer l’événement attaché sous-jacent :To use this event as an EventTrigger in a style, you must reference the underlying attached event:

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

(Cette utilisation est requise car l’implémentation d’événement sur FrameworkElement qui expose l’événement de service sous-jacent ne mappe pas les ContextMenuOpening identificateur telles que vous pouvez l’utiliser dans les déclencheurs).(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 lui-même est un FrameworkElement classe dérivée, mais cet événement n’est pas déclenché dans le menu contextuel est ouvert en tant que source.ContextMenu itself is a FrameworkElement derived class, but this event will not be raised from the context menu being opened as a source. L’événement est déclenché à partir de l’élément qui « possède » le menu contextuel en tant que propriété et est déclenché uniquement lorsqu’un utilisateur tente d’ouvrir un menu contextuel dans l’interface utilisateur.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. Il est possible pour ContextMenu lui-même pour avoir un ContextMenu propriété, mais vous devez éviter ce scénario (pour plus d’informations, consultez FrameworkElement.ContextMenu).It is possible for ContextMenu itself to have a ContextMenu property, but you should avoid this scenario (for details, see FrameworkElement.ContextMenu).

Le ContextMenu lui-même comporte également un événement similaire (Opened) mais Opened ne vous fournit pas la possibilité d’annuler l’action de l’utilisateur.The ContextMenu class itself also has a similar event (Opened) but Opened does not provide you the opportunity to cancel the user action.

Informations sur les événements acheminésRouted Event Information

Champ d’identificateurIdentifier field ContextMenuOpeningEvent
Stratégie de routageRouting strategy PropagationBubbling
déléguéDelegate ContextMenuEventHandler
  • Substituer OnContextMenuOpening pour implémenter la gestion de classe pour cet événement dans les classes dérivées.Override OnContextMenuOpening to implement class handling for this event in derived classes.

S’applique à

Voir aussi