UIElement3D.OnPreviewMouseDown(MouseButtonEventArgs) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Wird aufgerufen, wenn ein nicht behandeltes PreviewMouseDown angefügtes 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 OnPreviewMouseDown(System::Windows::Input::MouseButtonEventArgs ^ e);
protected internal 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 Friend Overridable Sub OnPreviewMouseDown (e As MouseButtonEventArgs)
Parameter
Die MouseButtonEventArgs, die die Ereignisdaten enthält. Die Ereignisdaten berichten, dass mindestens eine Maustaste gedrückt 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.PreviewMouseDown Ereignis als behandelt kennzeichnen, wird OnPreviewMouseDown 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 für das empfangende Element ausgelöst werden, wenn Mouse.PreviewMouseDown 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 handledEventsToo
true
, um Handler anzufügen. Klassenhandler werden auch nicht aufgerufen, es sei denn, diese Klassenhandler wurden mit der RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) Signatur mit handledEventsToo
true
registriert. Durch die Behandlung von OnPreviewMouseDownsetzen Sie voraus, dass ihre Klassenverarbeitung für alle möglichen Aktionen der Maustaste nach unten 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. Ein weiteres Szenario, das speziell für Preview-Ereignisse bestimmt ist, besteht darin, sie zu markieren, damit die übereinstimmenden Bubbling-Klassenhandler nicht aufgerufen werden.