UIElement.OnPreviewMouseUp(MouseButtonEventArgs) Methode

Definition

Wird aufgerufen, wenn ein nicht behandeltes PreviewMouseUp angefügtes Ereignis ein Element in seiner Route erreicht, die von dieser Klasse abgeleitet wird. Implementieren Sie diese Methode, um die Klassenbehandlung für dieses Ereignis hinzuzufügen.

protected:
 virtual void OnPreviewMouseUp(System::Windows::Input::MouseButtonEventArgs ^ e);
protected 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 Overridable Sub OnPreviewMouseUp (e As MouseButtonEventArgs)

Parameter

e
MouseButtonEventArgs

Die MouseButtonEventArgs, die die Ereignisdaten enthält. Die Ereignisdaten berichten, dass mindestens eine Maustaste losgelassen wurde.

Hinweise

Aktionen mit der Maustaste werden auch von einem dedizierten Eingabe-Manager behandelt. Andere Programmierfeatures, die auf Aktionen mit der Maustaste basieren, z. B. Eingabe- und Befehlsbindungen, können Handler für die Aktion aufrufen, bevor sie als allgemeine Maustastenaktion verfügbar gemacht wird. Wenn diese Eingabesystemfeatures das Mouse.PreviewMouseUp Ereignis als behandelt kennzeichnen, wird OnPreviewMouseUp nicht aufgerufen.

Wenn Sie diesen Klassenhandler verwenden, um das Ereignis als behandelt zu markieren, wirken sie sich möglicherweise auf die folgenden Ereignisse aus: PreviewMouseLeftButtonUp und PreviewMouseRightButtonUp. Eines dieser Ereignisse kann für das empfangende Element ausgelöst werden, wenn Mouse.PreviewMouseUp empfangen wird.

Wenn Sie dieses Ereignis als in der Klassenbehandlung behandelt markieren, werden Unterereignisse weiterhin ausgelöst. Sie übergeben jedoch den behandelten Zustand in den Ereignisdaten. Wenn das Ereignis in der Klassenbehandlung behandelt wird, werden Instanzhandler für die Unterereignisse nicht aufgerufen, es sei denn, Sie verwenden AddHandler(RoutedEvent, Delegate, Boolean) explizit mit handledEventsTootrue, um Handler anzufügen. Klassenhandler werden auch nicht aufgerufen, es sei denn, diese Klassenhandler wurden mit der RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) Signatur mit handledEventsTootrueregistriert. Durch die Behandlung von OnPreviewMouseUpsetzen Sie voraus, dass ihre Klassenverarbeitung für alle möglichen Aktionen mit der Maustaste berücksichtigt wurde. Dieses Verhalten kann unerwünschter sein; Verwenden Sie daher Vorsicht, wenn Sie diese virtuelle Methode verwenden, um Ereignisse als behandelt zu markieren.

Jedes der schaltflächenspezifischen direkten Ereignisse verfügt auch über eine virtuelle On*-Methode; Überlegen Sie, ob das Überschreiben dieser schaltflächenspezifischen Klassenhandler möglicherweise geeigneter ist.

Diese Methode hat keine Standardimplementierung. Da eine Zwischenklasse in der Vererbung diese Methode implementieren kann, empfehlen wir, die Basisimplementierung in Ihrer Implementierung aufzurufen.

Der Zweck dieser Methode ähnelt dem On*-Ereignismuster der Common Language Runtime (CLR): Diese Methode bietet die Möglichkeit, das übereinstimmende Ereignis von abgeleiteten Klassen zu behandeln, indem ein Klassenhandler anstelle eines Instanzhandlers erstellt wird. In diesem Fall ist das übereinstimmende Ereignis ein Routingereignis. Das Implementierungsmuster der On*-Methoden unterscheidet sich für Routingereignisse, da ein routingfähiges Ereignis von einem untergeordneten Element ausgelöst werden kann, was nicht unbedingt das Element ist, das Handler aufruft. Daher muss Ihre Implementierung die Quelleigenschaften der Ereignisdaten untersuchen. Es sollte nicht versuchen, das Ereignis in den meisten Fällen erneut zu reraise.

Entweder durch Überschreiben dieser Methode oder durch Registrieren von Klassenhandlern mit RegisterClassHandlerkönnen abgeleitete Klassen von UIElement private Klassenhandlermethoden aufrufen, wenn das Ereignis entlang der Ereignisroute empfangen wird. Ein Szenario, in dem die Klassenbehandlung geeignet ist, besteht darin, die Ereignisdaten zu bearbeiten und das Routingereignis als behandelt zu markieren.

Gilt für:

Weitere Informationen