Freigeben über


UIElement3D.OnMouseUp(MouseButtonEventArgs) Methode

Definition

Wird aufgerufen, wenn ein unbehandeltes MouseUp Routingereignis 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 public:
 virtual void OnMouseUp(System::Windows::Input::MouseButtonEventArgs ^ e);
protected internal virtual void OnMouseUp (System.Windows.Input.MouseButtonEventArgs e);
abstract member OnMouseUp : System.Windows.Input.MouseButtonEventArgs -> unit
override this.OnMouseUp : System.Windows.Input.MouseButtonEventArgs -> unit
Protected Friend Overridable Sub OnMouseUp (e As MouseButtonEventArgs)

Parameter

e
MouseButtonEventArgs

Die MouseButtonEventArgs, die die Ereignisdaten enthält. Die Ereignisdaten berichten, dass die 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.MouseUp Ereignis als behandelt kennzeichnen, wird OnMouseUp nicht aufgerufen.

Wenn Sie diesen Klassenhandler verwenden, um das Ereignis als behandelt zu markieren, wirken sie sich möglicherweise auf die folgenden Ereignisse aus: MouseLeftButtonUp und MouseRightButtonUp. Eines dieser Ereignisse kann für das empfangende Element ausgelöst werden, wenn Mouse.MouseUp 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 OnMouseUpsetzen 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 UIElement3D 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: