Compartilhar via


UIElement.OnMouseDown(MouseButtonEventArgs) Método

Definição

Invocado quando um evento anexado MouseDown sem tratamento atinge um elemento em sua rota derivado dessa classe. Implemente esse método para adicionar tratamento de classe para este evento.

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

Parâmetros

e
MouseButtonEventArgs

O MouseButtonEventArgs que contém os dados do evento. Esses dados de evento relatam detalhes sobre o botão do mouse que foi pressionado e o estado manipulado.

Comentários

As ações do botão do mouse também são tratadas por um gerenciador de entrada dedicado. Outros recursos de programação que dependem de ações de botão do mouse, como associações de entrada e comando, podem invocar manipuladores para a ação antes que ela seja exposta como uma ação geral do botão do mouse. Se esses recursos do sistema de entrada marcarem o evento Mouse.MouseDown como manipulado, OnMouseDown não será invocado.

Se você usar esse manipulador de classe para marcar o evento como tratado, poderá afetar os seguintes eventos: MouseLeftButtonDown e MouseRightButtonDown. Qualquer um desses eventos pode ser gerado no elemento receptor quando Mouse.MouseDown é recebido.

Se você marcar esse evento como tratado no tratamento de classe, os subeventos ainda serão gerados; no entanto, eles passam o estado manipulado nos dados do evento. Se o evento for tratado no tratamento de classe, os manipuladores de instância para os subeventos não serão invocados, a menos que você use explicitamente AddHandler(RoutedEvent, Delegate, Boolean) com handledEventsTootrue para anexar manipuladores. Os manipuladores de classe também não são invocados, a menos que esses manipuladores de classe tenham sido registrados com a assinatura RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) com handledEventsTootrue. Ao lidar com OnMouseDown, você está implicando que o tratamento de classe foi responsável por todas as ações possíveis do botão do mouse para baixo. Esse comportamento pode ser indesejado; Portanto, tenha cuidado ao usar esse método virtual para marcar eventos como manipulados.

Cada um dos eventos diretos específicos do botão também tem um método virtual On*; considere se substituir esses manipuladores de classe específicos do botão pode ser mais apropriado.

Esse método não tem nenhuma implementação padrão. Como uma classe intermediária na herança pode implementar esse método, recomendamos que você chame a implementação base em sua implementação.

A finalidade desse método é semelhante ao padrão de evento CLR (common language runtime) métodos On*: este método fornece os meios para lidar com o evento correspondente de classes derivadas estabelecendo um manipulador de classe em vez de um manipulador de instância. Nesse caso, o evento correspondente é um evento roteado. O padrão de implementação dos métodos On* é diferente para eventos roteado porque um evento roteado pode ser gerado por um elemento filho, que não é necessariamente o elemento que invocará manipuladores. Portanto, sua implementação precisa examinar as propriedades de origem dos dados do evento. Ele não deve tentar reraizar o evento na maioria dos casos.

Substituindo esse método ou registrando manipuladores de classe com RegisterClassHandler, classes derivadas de UIElement podem chamar métodos de manipulador de classe privada quando o evento é recebido ao longo da rota do evento. Um cenário em que o tratamento de classe é apropriado é manipular os dados do evento e marcar o evento roteado como manipulado.

Aplica-se a

Confira também