FrameworkElement.ContextMenuOpening Événement

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 

Type d'événement

ContextMenuEventHandler

Remarques

Pour ouvrir manuellement des menus contextuels, les gestionnaires des événements doivent marquer l’événement approprié comme géré.To manually open context menus, handlers of the events should mark the relevant event as handled. Dans le cas contraire, 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. Le marquage de l’événement géré annule effectivement l’action par défaut et peut être la possibilité de réinitialiser la valeur de la ContextMenu propriété, puis d’ouvrir la nouvelle 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. Vous pouvez également être amené à gérer l’événement, puis à ouvrir 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 Comment : gérer l’événement ContextMenuOpening.For details, see How to: Handle the ContextMenuOpening Event.

Pour utiliser cet événement en tant que 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 nécessaire car l’implémentation de l’événement sur FrameworkElement qui expose l’événement de service sous-jacent ne mappe pas l' ContextMenuOpening identificateur de telle sorte que vous puissiez l’utiliser dans des 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 une FrameworkElement classe dérivée, mais cet événement n’est pas déclenché à partir du menu contextuel qui s’ouvre 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 d' ContextMenu avoir une 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).

La ContextMenu classe elle-même a également un événement similaire ( Opened ), mais elle Opened ne vous offre 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
  • Substituez 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