Mouse.MouseDown Mouse.MouseDown Mouse.MouseDown Attached Event

Definición

Se produce cuando se presiona cualquier botón del mouse.Occurs when any mouse button is depressed.

see AddMouseDownHandler, and RemoveMouseDownHandler
see AddMouseDownHandler, and RemoveMouseDownHandler
see AddMouseDownHandler, and RemoveMouseDownHandler

Comentarios

Para determinar qué botón del mouse se presionó, ChangedButton Compruebe la propiedad MouseButtonEventArgs del que se ha pasado al controlador.To determine which mouse button was depressed, check the ChangedButton property in the MouseButtonEventArgs passed to the handler.

Se trata de un evento adjunto.This is an attached event. WPFWPFimplementa los eventos adjuntos como eventos enrutados.implements attached events as routed events. Los eventos adjuntos son XAMLXAML fundamentalmente un concepto de lenguaje para hacer referencia a eventos que se pueden controlar en objetos que no definen WPFWPF ese evento, que se expande al habilitar también el evento para atravesar una ruta.Attached events are fundamentally a XAMLXAML language concept for referencing events that can be handled on objects that do not define that event, which WPFWPF expands upon by also enabling the event to traverse a route. Los eventos adjuntos no tienen una sintaxis de control directo en el código; para adjuntar controladores para un evento enrutado en el código, se usa un método de controlador Add * designado.Attached events do not have a direct handling syntax in code; to attach handlers for a routed event in code, you use a designated Add*Handler method. Para obtener más información, vea información general sobre eventosadjuntos.For details, see Attached Events Overview.

El Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) marco de trabajo se basa en este evento adjunto y lo expone Common Language Runtime (CLR)common language runtime (CLR) como dos UIElement eventos diferentes MouseLeftButtonDown en MouseRightButtonDowny ContentElement: y.The Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) framework builds on this attached event by surfacing it as two different Common Language Runtime (CLR)common language runtime (CLR) events on UIElement and ContentElement: MouseLeftButtonDown and MouseRightButtonDown. Estas implementaciones controlan el MouseDown evento subyacente y leen los argumentos del evento para determinar si se ha implicado el botón primario o secundario del mouse.These implementations handle the underlying MouseDown event and read the arguments of the event to determine whether the left or right mouse button was involved. Para un mouse de tres botones, no hay compatibilidad con eventos en el nivel de marco de trabajo para el botón central.For a three-button mouse, there is no framework-level event support for the center button. Debe utilizar el MouseDown evento y comprobar el MiddleButton estado en los argumentos del evento.You should use the MouseDown event and check the MiddleButton state in the event arguments.

Importante

Algunas ContentElement clases derivadas que tienen un comportamiento similar al control, por ejemplo Hyperlink,, pueden tener un control de clases inherente para los eventos de botón del mouse.A few ContentElement derived classes that have control-like behavior, for example, Hyperlink, might have inherent class handling for mouse button events. El evento de presionar el botón primario del mouse es el evento más probable para tener control de clases en un control.The left mouse button down event is the most likely event to have class handling in a control. El control de clases a menudo marca Mouse el evento de clase subyacente como controlado.The class handling often marks the underlying Mouse class event as handled. Una vez que el evento está marcado como controlado, no se suelen generar otros controladores de instancia que están asociados a ese elemento.Once the event is marked handled, other instance handlers that are attached to that element are not ordinarily raised. Tampoco se suelen generar otros controladores de clase o de instancia que estén asociados a elementos en la dirección de propagación hacia la raíz en el árbol de la interfaz de usuario.Any other class or instance handlers that are attached to elements in the bubbling direction towards the root in the UI tree are also not ordinarily raised.

Puede resolver el problema que se describe en la Nota importante anterior y seguir recibiendo MouseDown eventos para los eventos del botón primario del mouse en una clase derivada que tiene control de clases mediante cualquiera de estas soluciones:You can resolve the issue that is outlined in the preceding Important note and still receive MouseDown events for left mouse button down events on a derived class that has class handling by using either of these solutions:

  • Adjunte Controladores para el PreviewMouseDown evento, que no está marcado como controlado por los controles.Attach handlers for the PreviewMouseDown event, which is not marked as handled by the controls. Tenga en cuenta que, dado que se trata de un evento de vista previa, la ruta comienza en la raíz y se tuneliza hasta el control.Notice that because this is a preview event, the route starts at the root and tunnels down to the control.

  • Registre un controlador en el control de forma procedimental llamando AddHandler a y eligiendo la opción de firma que permite a los controladores escuchar eventos aunque ya estén marcados como controlados en los datos de eventos enrutados.Register a handler on the control procedurally by calling AddHandler and choosing the signature option that enables handlers to listen for events even if they are already marked as handled in the routed event data.

En el caso de los eventos enrutados relacionados con el mouse, tenga cuidado sobre cómo o cuando los marque como controlados.For routed events that relate to the mouse, be careful about how or when you mark them handled. La dificultad de tomar las decisiones adecuadas sobre si los elementos primarios también deben estar informados sobre cualquier acción del mouse determinada WPFWPF es de hecho que el marco de trabajo elija el modelo de que el evento enrutado del mouse subyacente se muestre como CLRCLR eventos a lo largo de la ruta.The difficulty in making the appropriate choices about whether parent elements should also be informed about any given mouse action is in fact why the WPFWPF framework chose the model of having the underlying mouse routed event be surfaced as CLRCLR events along the route. Existen problemas similares con los eventos del mouse de tunelización.Similar issues exist with tunneling mouse events. ¿Se debe controlar el evento y no hacer que lo controlen más elementos secundarios hacia el origen y cómo esto afectaría a la composición de un control en el que las piezas de composición podrían haber esperado comportamientos del mouse?Should you handle the event and not have it be handled by further children toward the source, and how would that affect compositing a control where the compositing pieces might have expected mouse behaviors?

Información sobre eventos enrutadosRouted Event Information

Campo de identificadorIdentifier field MouseDownEvent
Estrategia de enrutamientoRouting strategy PropagaciónBubbling
delegadoDelegate MouseButtonEventHandler

Se aplica a