FrameworkElement.ContextMenuOpening Evento
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.