FrameworkElement.ContextMenuOpening Evento

Definición

Se produce cuando se abre cualquier menú contextual en el elemento.

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 

Tipo de evento

Comentarios

Para abrir manualmente los menús contextuales, los controladores de los eventos deben marcar el evento pertinente como controlado. De lo contrario, el valor existente de la ContextMenu propiedad se usará para abrir automáticamente un menú contextual. Marcar el evento controlado cancelará eficazmente la acción predeterminada y podría ser una oportunidad para restablecer el valor de la ContextMenu propiedad y, a continuación, abrir el nuevo ContextMenu. Sin embargo, hay un problema de tiempo que debe tener en cuenta. Para reemplazar completamente el menú contextual a través de un ContextMenuOpening controlador, el menú contextual inicial no debe ser nulo o estar vacío. Como alternativa, es posible que tenga que controlar el evento y, a continuación, abrir manualmente un nuevo menú contextual. Para obtener más información, vea Cómo: Controlar el evento ContextMenuOpening.

Para usar este evento como en EventTrigger un estilo, debe hacer referencia al evento adjunto subyacente:

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

(Este uso es necesario porque la implementación de eventos en FrameworkElement que expone el evento de servicio subyacente no asigna el ContextMenuOpening identificador de modo que pueda usarlo en desencadenadores).

ContextMenu es una FrameworkElement clase derivada, pero este evento no se generará desde el menú contextual que se abre como origen. El evento se genera desde el elemento que "posee" el menú contextual como una propiedad y solo se genera cuando un usuario intenta abrir un menú contextual en la interfaz de usuario. Es posible ContextMenu tener una ContextMenu propiedad , pero debe evitar este escenario (para obtener más información, consulte FrameworkElement.ContextMenu).

La ContextMenu propia clase también tiene un evento similar (Opened), pero Opened no proporciona la oportunidad de cancelar la acción del usuario.

Información sobre eventos enrutados

Campo identificador ContextMenuOpeningEvent
Estrategia de enrutamiento Burbujeante
Delegado ContextMenuEventHandler
  • Invalide OnContextMenuOpening para implementar el control de clases para este evento en clases derivadas.

Se aplica a

Consulte también