UIElement.OnPreviewMouseDown(MouseButtonEventArgs) Método

Definición

Se invoca cuando un evento enrutado no controlado PreviewMouseDown asociado alcanza un elemento de su ruta que se deriva de esta clase. Implemente este método para agregar el control de clases para este evento.

protected:
 virtual void OnPreviewMouseDown(System::Windows::Input::MouseButtonEventArgs ^ e);
protected virtual void OnPreviewMouseDown (System.Windows.Input.MouseButtonEventArgs e);
abstract member OnPreviewMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
override this.OnPreviewMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
Protected Overridable Sub OnPreviewMouseDown (e As MouseButtonEventArgs)

Parámetros

e
MouseButtonEventArgs

El MouseButtonEventArgs que contiene los datos del evento. Los datos del evento notifican que se presionaron uno o varios botones del mouse.

Comentarios

Las acciones del botón del mouse también se controlan mediante un administrador de entrada dedicado. Otras características de programación que dependen de acciones de botón del mouse, como enlaces de entrada y comandos, pueden invocar controladores para la acción antes de exponerse como una acción general del botón del mouse. Si estas características del sistema de entrada marcan el evento Mouse.PreviewMouseDown como controlado, no se invoca OnPreviewMouseDown.

Si usa este controlador de clases para marcar el evento como controlado, podría afectar a los siguientes eventos: PreviewMouseLeftButtonDown y PreviewMouseRightButtonDown. Cualquiera de estos eventos se puede generar en el elemento receptor cuando se recibe Mouse.PreviewMouseDown.

Si marca este evento como controlado en el control de clases, los subeventos todavía se generan; sin embargo, pasan el estado controlado en los datos del evento. Si el evento se controla en el control de clases, los controladores de instancia de los subeventos no se invocan a menos que use explícitamente AddHandler(RoutedEvent, Delegate, Boolean) con handledEventsTootrue para adjuntar controladores. Los controladores de clase tampoco se invocan a menos que esos controladores de clase se hayan registrado con la firma de RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) con handledEventsTootrue. Al controlar OnPreviewMouseDown, implica que el control de clases tiene en cuenta todas las acciones posibles del botón de mouse hacia abajo. Este comportamiento puede ser no deseado; Por lo tanto, tenga cuidado al usar este método virtual para marcar los eventos como controlados.

Cada uno de los eventos directos específicos del botón también tiene un método On* virtual; considere si la invalidación de estos controladores de clases específicos del botón podría ser más adecuado.

Este método no tiene ninguna implementación predeterminada. Dado que una clase intermedia de la herencia podría implementar este método, se recomienda llamar a la implementación base en la implementación.

El propósito de este método es similar al patrón de eventos de Common Language Runtime (CLR) métodos On*: este método proporciona los medios para controlar el evento coincidente de las clases derivadas estableciendo un controlador de clases en lugar de un controlador de instancia. En este caso, el evento coincidente es un evento enrutado. El patrón de implementación de los métodos On* es diferente para los eventos enrutados porque un elemento secundario puede generar un evento enrutado, que no es necesariamente el elemento que invocará controladores. Por lo tanto, la implementación debe examinar las propiedades de origen de los datos del evento. No debe intentar recuperar el evento en la mayoría de los casos.

Al invalidar este método o registrar controladores de clases con RegisterClassHandler, las clases derivadas de UIElement pueden llamar a métodos de controlador de clases privadas cuando se recibe el evento a lo largo de la ruta del evento. Un escenario en el que el control de clases es adecuado es manipular los datos del evento y marcar el evento enrutado como controlado. Otro escenario específico para eventos en versión preliminar es marcarlos controlados para que no se invoquen los controladores de clase de propagación coincidentes.

Se aplica a

Consulte también