FrameworkElement.ContextMenuOpening FrameworkElement.ContextMenuOpening FrameworkElement.ContextMenuOpening FrameworkElement.ContextMenuOpening Event

Definición

Se produce cuando se abre cualquier menú contextual en el 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 

Comentarios

Para abrir manualmente los menús contextuales, los controladores de los eventos deben marcar el evento pertinente como controlado.To manually open context menus, handlers of the events should mark the relevant event as handled. De lo contrario, el valor existente ContextMenu de la propiedad se utilizará para abrir automáticamente un menú contextual.Otherwise, the existing value of the ContextMenu property will be used to automatically open a context menu. Al marcar el evento como controlado, se cancelará la acción predeterminada y podría ser una oportunidad para restablecer el valor ContextMenu de la propiedad y, a ContextMenucontinuación, abrir el nuevo.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. Sin embargo, hay un problema de temporización que debe tener en cuenta.However, there is a timing issue you should be aware of. Para reemplazar por completo el menú contextual a través ContextMenuOpening de un controlador, el menú contextual inicial no debe ser null ni estar vacío.In order to completely replace the context menu through a ContextMenuOpening handler, the initial context menu must not be null / empty. Como alternativa, puede que tenga que controlar el evento y, a continuación, abrir manualmente un nuevo menú contextual.Alternatively, you might need to handle the event and then manually open a new context menu. Para obtener más detalles, vea Cómo: Controle el eventoContextMenuOpening.For details, see How to: Handle the ContextMenuOpening Event.

Para usar este evento como EventTrigger en un estilo, debe hacer referencia al evento adjunto subyacente:To use this event as an EventTrigger in a style, you must reference the underlying attached event:

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

(Este uso es necesario porque la implementación de eventos FrameworkElement en que expone el evento de servicio subyacente no asigna el ContextMenuOpening identificador de modo que pueda usarlo en los desencadenadores).(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).

ContextMenues una FrameworkElement clase derivada, pero este evento no se generará en el menú contextual que se abre como origen.ContextMenu itself is a FrameworkElement derived class, but this event will not be raised from the context menu being opened as a source. 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.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. Es posible ContextMenu tener una ContextMenu propiedad, pero debe evitar este escenario (para obtener más información, vea 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 propia clase también tiene un evento similar (Opened), Opened pero no ofrece la oportunidad de cancelar la acción del usuario.The ContextMenu class itself also has a similar event (Opened) but Opened does not provide you the opportunity to cancel the user action.

Información sobre eventos enrutadosRouted Event Information

Campo de identificadorIdentifier field ContextMenuOpeningEvent
Estrategia de enrutamientoRouting strategy PropagaciónBubbling
delegadoDelegate ContextMenuEventHandler
  • Invalide OnContextMenuOpening para implementar el control de clases para este evento en las clases derivadas.Override OnContextMenuOpening to implement class handling for this event in derived classes.

Se aplica a

Consulte también: