Mouse.MouseDown Evento anexado

Definição

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

Comentários

Para determinar qual botão do mouse foi pressionado, verifique ChangedButton a propriedade MouseButtonEventArgs em 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. WPFWPFimplementa eventos anexados como eventos roteados.implements attached events as routed events. Eventos anexados são fundamentalmente XAMLXAML um conceito de linguagem para referenciar eventos que podem ser tratados em objetos que não definem esse WPFWPF evento, que se expandem também, permitindo que o evento atravesse 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.

A Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) estrutura se baseia nesse evento anexado por identificando-lo como dois CLR (Common Language Runtime)common language runtime (CLR) eventos diferentes UIElement em ContentElemente MouseLeftButtonDown : MouseRightButtonDowne.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 MouseDown o evento 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 MouseDown evento e verificar o MiddleButton estado nos argumentos do evento.You should use the MouseDown event and check the MiddleButton state in the event arguments.

Importante

Algumas ContentElement classes derivadas que têm comportamento semelhante ao de controle, por Hyperlinkexemplo, 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 frequentemente marca o Mouse evento de classe 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 PreviewMouseDown evento, 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 de forma conceitual 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 de evento roteados.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 é WPFWPF , na verdade, por que a estrutura escolheu o modelo de que o evento CLRCLR roteado do mouse subjacente seja exibido como 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 de evento encaminhadoRouted Event Information

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

Aplica-se a