Partager via


FrameworkElement.ContextMenuOpening Événement

Définition

Se produit lorsqu'un menu contextuel sur l'élément est ouvert.

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

Remarques

Pour ouvrir manuellement des menus contextuels, les gestionnaires des événements doivent marquer l’événement approprié comme étant géré. Sinon, la valeur existante de la ContextMenu propriété sera utilisée pour ouvrir automatiquement un menu contextuel. Le marquage de l’événement géré annule efficacement l’action par défaut et peut être l’occasion de réinitialiser la valeur de la ContextMenu propriété, puis d’ouvrir le nouveau ContextMenu. Toutefois, il existe un problème de calendrier dont vous devez être conscient. Pour remplacer complètement le menu contextuel par le biais d’un ContextMenuOpening gestionnaire, le menu contextuel initial ne doit pas être null/vide. Vous devrez également gérer l’événement, puis ouvrir manuellement un nouveau menu contextuel. Pour plus d’informations, consultez Guide pratique pour gérer l’événement ContextMenuOpening.

Pour utiliser cet événement en tant que dans EventTrigger un style, vous devez référencer l’événement joint sous-jacent :

<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 l’identificateur ContextMenuOpening de sorte que vous pouvez l’utiliser dans des déclencheurs).

ContextMenu il s’agit d’une FrameworkElement classe dérivée, mais cet événement ne sera pas déclenché à partir du menu contextuel ouvert en tant que source. L’événement est déclenché à partir de l’élément qui « possède » le menu contextuel en tant que propriété et n’est déclenché que lorsqu’un utilisateur tente d’ouvrir un menu contextuel dans l’interface utilisateur. Il est possible pour ContextMenu lui-même d’avoir une ContextMenu propriété, mais vous devez éviter ce scénario (pour plus d’informations, voir FrameworkElement.ContextMenu).

La ContextMenu classe elle-même a également un événement similaire (Opened), mais Opened ne vous permet pas d’annuler l’action de l’utilisateur.

Informations sur les événements acheminés

Champ Identificateur ContextMenuOpeningEvent
Stratégie de routage Bouillonnant
Délégué ContextMenuEventHandler
  • Remplacez OnContextMenuOpening pour implémenter la gestion des classes pour cet événement dans des classes dérivées.

S’applique à

Voir aussi