UIElement.OnMouseDown(MouseButtonEventArgs) Methode

Definition

Wird aufgerufen, wenn ein nicht behandeltes, angefügtes MouseDown-Ereignis beim Durchlauf ein von dieser Klasse abgeleitetes Element erreicht. Implementieren Sie diese Methode, um eine Klassenbehandlung für dieses Ereignis hinzuzufügen.

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)

Parameter

e
MouseButtonEventArgs

Das MouseButtonEventArgs, das die Ereignisdaten enthält. Diese Ereignisdaten melden Details zur Maustaste, die gedrückt wurde, und zum behandelten Zustand.

Hinweise

Maustastenaktionen werden auch von einem dedizierten Eingabe-Manager verarbeitet. Andere Programmierfeatures, die auf Maustastenaktionen 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.MouseDown Ereignis als behandelt markieren, OnMouseDown wird nicht aufgerufen.

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

Wenn Sie dieses Ereignis als in der Klassenbehandlung behandelt markieren, werden weiterhin Unterereignisse ausgelöst. sie übergeben jedoch den behandelten Zustand in den Ereignisdaten. Wenn das Ereignis in der Klassenbehandlung behandelt wird, werden instance Handler für die Unterereignisse nicht aufgerufen, es sei denn, Sie verwenden AddHandler(RoutedEvent, Delegate, Boolean) explizit mithandledEventsTootrue, 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 OnMouseDownvon wird impliziert, dass ihre Klassenbehandlung alle möglichen Aktionen nach unten mit der Maustaste berücksichtigt. Dieses Verhalten kann unerwünscht sein; Achten Sie daher darauf, wenn Sie diese virtuelle Methode verwenden, um Ereignisse als behandelt zu markieren.

Jedes der schaltflächenspezifischen direkten Ereignisse verfügt außerdem über eine virtuelle On*-Methode. Überlegen Sie, ob das Überschreiben dieser schaltflächenspezifischen Klassenhandler besser geeignet ist.

Diese Methode verfügt über keine Standardimplementierung. Da eine Zwischenklasse in der Vererbung diese Methode implementieren kann, wird empfohlen, die Basisimplementierung in Ihrer Implementierung aufzurufen.

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

Entweder durch Überschreiben dieser Methode oder durch Registrieren von Klassenhandlern bei 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 weitergeleitete Ereignis als behandelt zu markieren.

Gilt für:

Weitere Informationen