Mouse.MouseDown Attached Event

Definition

Ocorre quando qualquer botão do mouse é pressionado.Occurs when any mouse button is depressed.

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

Remarks

Para determinar qual botão do mouse foi pressionado, verifique a propriedade ChangedButton no MouseButtonEventArgs passado para o manipulador.To determine which mouse button was depressed, check the ChangedButton property in the MouseButtonEventArgs passed to the handler.

Este é um evento anexado.This is an attached event. WPFWPF implementa eventos anexados como eventos roteados.implements attached events as routed events. Os eventos anexados são fundamentalmente um conceito de linguagem XAMLXAML para referenciar eventos que podem ser tratados em objetos que não definem esse evento, que WPFWPF se expande também habilitando o evento para atravessar uma rota.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. Eventos anexados não têm uma sintaxe de manipulação direta no código; para anexar manipuladores para um evento roteado no código, você usa um método manipulador de adição * 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 obter detalhes, consulte visão geral de eventos anexados.For details, see Attached Events Overview.

O Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) Framework se baseia nesse evento anexado por identificando-lo como dois diferentes eventos CLR (Common Language Runtime)common language runtime (CLR) em UIElement e ContentElement: MouseLeftButtonDown e MouseRightButtonDown.The Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) framework builds on this attached event by surfacing it as two different CLR (Common Language Runtime)common language runtime (CLR) events on UIElement and ContentElement: MouseLeftButtonDown and MouseRightButtonDown. Essas implementações manipulam o evento de MouseDown subjacente e lêem os argumentos do evento para determinar se o botão esquerdo ou direito do mouse estava envolvido.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 um mouse de três botões, não há suporte de eventos no nível da estrutura para o botão central.For a three-button mouse, there is no framework-level event support for the center button. Você deve usar o evento MouseDown e verificar o estado de MiddleButton nos argumentos do evento.You should use the MouseDown event and check the MiddleButton state in the event arguments.

Important

Algumas ContentElement classes derivadas que têm comportamento semelhante ao de controle, por exemplo, Hyperlink, podem ter manipulação de classe inerente para eventos de botão do mouse.A few ContentElement derived classes that have control-like behavior, for example, Hyperlink, might have inherent class handling for mouse button events. O evento do botão esquerdo do mouse é o evento mais provável para ter manipulação de classe em um controle.The left mouse button down event is the most likely event to have class handling in a control. A manipulação de classe geralmente marca o evento de classe de Mouse subjacente como manipulado.The class handling often marks the underlying Mouse class event as handled. Depois que o evento é marcado como manipulado, outros manipuladores de instância anexados a esse elemento não são gerados normalmente.Once the event is marked handled, other instance handlers that are attached to that element are not ordinarily raised. Quaisquer outros manipuladores de classe ou de instância anexados a elementos na direção de bolha em direção à raiz na árvore de interface do usuário também não são gerados normalmente.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.

Você pode resolver o problema descrito na observação importante anterior e ainda receber MouseDown eventos para os eventos do botão esquerdo do mouse para baixo em uma classe derivada que tem manipulação de classe usando uma destas soluções: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:

  • Anexe manipuladores para o evento PreviewMouseDown, que não está marcado como manipulado pelos controles.Attach handlers for the PreviewMouseDown event, which is not marked as handled by the controls. Observe que, como esse é um evento de visualização, a rota começa na raiz e faz o túnel para baixo até o controle.Notice that because this is a preview event, the route starts at the root and tunnels down to the control.

  • Registre um manipulador no controle em procedimento chamando AddHandler e escolhendo a opção de assinatura que permite que os manipuladores escutem eventos, mesmo que eles já estejam marcados como manipulados nos dados do evento roteado.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.

Para eventos roteados relacionados ao mouse, tenha cuidado com como ou quando marcá-los como manipulados.For routed events that relate to the mouse, be careful about how or when you mark them handled. A dificuldade de fazer as escolhas apropriadas sobre se os elementos pai também devem ser informados sobre qualquer ação de mouse específica é, na verdade, por que a estrutura de WPFWPF escolheu o modelo de ter o evento roteado mouse subjacente ser exibido como CLRCLR eventos ao longo da rota.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. Existem problemas semelhantes com eventos de mouse de túnel.Similar issues exist with tunneling mouse events. Você deve lidar com o evento e não tê-lo tratado por outros filhos em direção à origem e como isso afetaria a composição de um controle em que as partes de composição possam ter comportamentos esperados do 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?

Informações Sobre Eventos RoteadosRouted Event Information

Campo de identificadorIdentifier field MouseDownEvent
Estratégia de roteamentoRouting strategy PropagaçãoBubbling
DelegadoDelegate MouseButtonEventHandler

Applies to