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, 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. En caso contrario, el valor existente de la ContextMenu propiedad se usará para abrir automáticamente un menú contextual.Otherwise, the existing value of the ContextMenu property will be used to automatically open a context menu. Marcar el evento como controlado eficazmente cancelará la acción predeterminada y podría ser una oportunidad para restablecer el valor de la ContextMenu propiedad y, a continuación, abra el nuevo 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. Sin embargo, hay un problema de tiempo que debe tener en cuenta.However, there is a timing issue you should be aware of. Para reemplazar completamente el menú contextual a través de un ContextMenuOpening controlador, el menú contextual inicial no debe ser null o están vacías.In order to completely replace the context menu through a ContextMenuOpening handler, the initial context menu must not be null / empty. Como alternativa, deberá controlar el evento y, a continuación, abra 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: Controlar el evento ContextMenuOpening.For details, see How to: Handle the ContextMenuOpening Event.

Para usar este evento como un EventTrigger en un estilo, debe hacer referencia el 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 en FrameworkElement que expone el evento de servicio subyacente no se asigna el ContextMenuOpening identificador que se puede usar 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).

ContextMenu es un FrameworkElement clase derivada, pero no se producirá este evento en el menú contextual que se abre como un 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 provoca desde el elemento que "posee" el menú contextual, como una propiedad y sólo se produce 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 que ContextMenu para tener un ContextMenu propiedad, pero se debe evitar esta situación (para obtener más información, consulte FrameworkElement.ContextMenu).It is possible for ContextMenu itself to have a ContextMenu property, but you should avoid this scenario (for details, see FrameworkElement.ContextMenu).

El ContextMenu propia clase también tiene un evento similar (Opened) pero Opened no proporciona 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
  • Invalidar OnContextMenuOpening para implementar el control de clases para este evento en clases derivadas.Override OnContextMenuOpening to implement class handling for this event in derived classes.

Se aplica a

Consulte también: