UIElement.OnPreviewMouseDown(MouseButtonEventArgs) Methode

Definition

Wird aufgerufen, wenn ein nicht behandeltes angefügtes PreviewMouseDown-Routingereignis 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 OnPreviewMouseDown(System::Windows::Input::MouseButtonEventArgs ^ e);
protected virtual void OnPreviewMouseDown (System.Windows.Input.MouseButtonEventArgs e);
abstract member OnPreviewMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
override this.OnPreviewMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
Protected Overridable Sub OnPreviewMouseDown (e As MouseButtonEventArgs)

Parameter

e
MouseButtonEventArgs

Das MouseButtonEventArgs, das die Ereignisdaten enthält. Die Ereignisdaten melden, dass eine oder mehrere Maustasten gedrückt wurden.

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.PreviewMouseDown Ereignis als behandelt markieren, OnPreviewMouseDown 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: PreviewMouseLeftButtonDown und PreviewMouseRightButtonDown. Eines dieser Ereignisse kann beim Empfang für das empfangende Element Mouse.PreviewMouseDown ausgelöst werden.

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 bei der RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) Signatur mit handledEventsTootrueregistriert. Durch die Behandlung OnPreviewMouseDownvon , implizieren Sie, dass Ihre Klassenbehandlung für alle möglichen Aktionen zum Herunterschalten der Maustaste verantwortlich ist. Dieses Verhalten kann unerwünscht sein. Gehen Sie daher vorsichtig vor, 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 möglicherweise geeigneter ist.

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

Der Zweck dieser Methode ähnelt dem ClR-Ereignismuster (Common Language Runtime) on*-Methoden: Diese Methode stellt die Möglichkeit bereit, das übereinstimmende Ereignis von abgeleiteten Klassen zu behandeln, 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 bei Routingereignissen, da ein routingfähiges Ereignis 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 bewerten.

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. Ein weiteres Szenario, das speziell für Vorschauereignisse gilt, besteht darin, sie zu markieren, die behandelt werden, sodass die übereinstimmenden sprudelnden Klassenhandler nicht aufgerufen werden.

Gilt für:

Weitere Informationen