ContentElement.OnPreviewMouseUp(MouseButtonEventArgs) Método

Definição

Invocado quando um evento anexo não tratado PreviewMouseUp atinge um elemento na sua rota derivado desta classe. Implemente este método para adicionar o tratamento de classes para este evento.

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

Parâmetros

e
MouseButtonEventArgs

O MouseButtonEventArgs que contém os dados do evento. Os dados do evento indicam que um ou mais botões do rato foram libertados.

Observações

As ações dos botões do rato também são geridas por um gestor de entradas dedicado. Outras funcionalidades de programação que dependem de ações de botões do rato, como atribuições de entrada e comandos, podem invocar manipuladores para a ação antes de esta ser exposta como uma ação geral de botão do rato. Se estas funcionalidades do sistema de entrada marcarem o Mouse.PreviewMouseUp evento como tratado, OnPreviewMouseUp não é invocado.

Se usar este gestor de classes para marcar o evento como tratado, pode impactar os seguintes eventos: PreviewMouseLeftButtonUp e PreviewMouseRightButtonUp. Qualquer um destes eventos pode ser levantado sobre o elemento receptor quando Mouse.PreviewMouseUp é recebido.

Se assinalares este evento como tratado na gestão de classes, os subeventos continuam a ser levantados; no entanto, passam o estado tratado nos dados do evento. Se o evento for tratado em class handling, os handlers de instância para os subeventos não são invocados a menos que use AddHandler(RoutedEvent, Delegate, Boolean) explicitamente with handledEventsTootrue para anexar handlers. Os manipuladores de classe também não são invocados a menos que esses manipuladores de classe estivessem registados com a RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) assinatura com handledEventsTootrue. Ao lidar OnPreviewMouseUpcom , estás a implicar que a gestão da tua classe teve em conta todas as possíveis ações de botão do rato. Este comportamento pode ser indesejado; Por isso, tenha cautela ao usar este método virtual para marcar eventos como tratados.

Cada um dos eventos diretos específicos de cada botão também tem um método virtual On*; Considere se sobrescrever estes manipuladores de classe específicos de botões seria mais apropriado.

Este método não tem implementação por defeito. Como uma classe intermédia na herança pode implementar este método, recomendamos que chame a implementação base na sua implementação.

O objetivo deste método é semelhante ao padrão de eventos On* em tempo de execução da linguagem comum (CLR): este método fornece os meios para lidar com o evento correspondente de classes derivadas, estabelecendo um gestor de classes em vez de um gestor de instâncias. Neste caso, o evento de correspondência é um evento encaminhado. O padrão de implementação dos métodos On* é diferente para eventos encaminhados porque um evento encaminhado pode ser gerado por um elemento filho, que não é necessariamente o elemento que irá invocar os handlers. Por isso, a sua implementação precisa de examinar as propriedades de origem dos dados do evento. Na maioria dos casos, não deve tentar reabrir o evento.

Quer sobrescrevendo este método, quer registando manipuladores de classe com RegisterClassHandler, classes derivadas de ContentElement podem chamar métodos de gestores privados de classes quando o evento é recebido ao longo da rota do evento. Um cenário em que o tratamento de classes é apropriado é manipular os dados do evento e marcar o evento encaminhado como tratado.

Aplica-se a

Ver também