FrameworkElement.ContextMenuOpening Evento

Definizione

Si verifica quando viene aperto un menu di scelta rapida relativo all'elemento.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 

Commenti

Per aprire manualmente i menu di scelta rapida, i gestori degli eventi devono contrassegnare l'evento pertinente come gestito.To manually open context menus, handlers of the events should mark the relevant event as handled. In caso contrario, verrà utilizzato il valore esistente della proprietà ContextMenu per aprire automaticamente un menu di scelta rapida.Otherwise, the existing value of the ContextMenu property will be used to automatically open a context menu. Se si contrassegna l'evento come gestito, l'azione predefinita verrà annullata e potrebbe essere la possibilità di reimpostare il valore della proprietà ContextMenu e quindi di aprire la nuova 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. Tuttavia, si verifica un problema di temporizzazione da tenere presente.However, there is a timing issue you should be aware of. Per sostituire completamente il menu di scelta rapida tramite un gestore di ContextMenuOpening, il menu di scelta rapida iniziale non deve essere null o vuoto.In order to completely replace the context menu through a ContextMenuOpening handler, the initial context menu must not be null / empty. In alternativa, potrebbe essere necessario gestire l'evento e quindi aprire manualmente un nuovo menu di scelta rapida.Alternatively, you might need to handle the event and then manually open a new context menu. Per informazioni dettagliate, vedere Procedura: Gestire ladi eventi ContextMenuOpening.For details, see How to: Handle the ContextMenuOpening Event.

Per usare questo evento come EventTrigger in uno stile, è necessario fare riferimento all'evento associato sottostante:To use this event as an EventTrigger in a style, you must reference the underlying attached event:

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

Questo utilizzo è necessario perché l'implementazione dell'evento su FrameworkElement che espone l'evento di servizio sottostante non esegue il mapping dell'identificatore ContextMenuOpening in modo che sia possibile utilizzarlo nei trigger).(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 è una classe FrameworkElement derivata, ma questo evento non verrà generato dal menu di scelta rapida aperto come origine.ContextMenu itself is a FrameworkElement derived class, but this event will not be raised from the context menu being opened as a source. L'evento viene generato dall'elemento "proprietario" del menu di scelta rapida come proprietà e viene generato solo quando un utente tenta di aprire un menu di scelta rapida nell'interfaccia utente.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. È possibile che ContextMenu disponga di una proprietà ContextMenu, ma è consigliabile evitare questo scenario (per informazioni dettagliate, vedere FrameworkElement.ContextMenu).It is possible for ContextMenu itself to have a ContextMenu property, but you should avoid this scenario (for details, see FrameworkElement.ContextMenu).

Anche la classe ContextMenu ha un evento simile (Opened), ma Opened non offre la possibilità di annullare l'azione dell'utente.The ContextMenu class itself also has a similar event (Opened) but Opened does not provide you the opportunity to cancel the user action.

Informazioni evento indirizzatoRouted Event Information

Campo identificatoreIdentifier field ContextMenuOpeningEvent
Strategia di routingRouting strategy BubblingBubbling
delegatoDelegate ContextMenuEventHandler
  • Eseguire l'override OnContextMenuOpening per implementare la gestione delle classi per questo evento nelle classi derivate.Override OnContextMenuOpening to implement class handling for this event in derived classes.

Si applica a

Vedi anche