UIElement.OnPreviewMouseDown(MouseButtonEventArgs) Methode

Definition

Wird aufgerufen, wenn ein nicht behandeltes angefügtes PreviewMouseDown-Routingereignis beim Durchlauf ein von dieser Klasse abgeleitetes Element erreicht.Invoked when an unhandled PreviewMouseDown attached routed event reaches an element in its route that is derived from this class. Implementieren Sie diese Methode, um eine Klassenbehandlung für dieses Ereignis hinzuzufügen.Implement this method to add class handling for this event.

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.The MouseButtonEventArgs that contains the event data. Die Ereignisdaten melden, dass eine oder mehrere Maustasten gedrückt wurden.The event data reports that one or more mouse buttons were pressed.

Hinweise

MouseButton-Aktionen werden auch von einem dedizierten Eingabe-Manager behandelt.Mouse button actions are also handled by a dedicated input manager. Andere Programmierfunktionen, die auf MouseButton-Aktionen (z. b. Eingabe-und Befehls Bindungen) basieren, können Handler für die Aktion aufrufen, bevor Sie als allgemeine MouseButton-Aktion verfügbar gemacht wird.Other programming features that rely on mouse button actions, such as input and command bindings, might invoke handlers for the action before it is exposed as a general mouse button action. Wenn diese Eingabe System Features das Mouse.PreviewMouseDown-Ereignis als behandelt markieren, wird OnPreviewMouseDown nicht aufgerufen.If these input system features mark the Mouse.PreviewMouseDown event as handled, OnPreviewMouseDown is not invoked.

Wenn Sie diesen Klassen Handler verwenden, um das Ereignis als behandelt zu markieren, haben Sie möglicherweise Auswirkungen auf die folgenden Ereignisse: PreviewMouseLeftButtonDown und PreviewMouseRightButtonDown.If you use this class handler to mark the event as handled, you potentially impact the following events: PreviewMouseLeftButtonDown and PreviewMouseRightButtonDown. Jedes dieser Ereignisse wird möglicherweise für das empfangende Element ausgelöst, wenn Mouse.PreviewMouseDown empfangen wird.Either of these events may be raised on the receiving element when Mouse.PreviewMouseDown is received.

Wenn Sie dieses Ereignis als behandelt in der Klassen Behandlung markieren, werden subevents weiterhin ausgelöst. Allerdings übergeben Sie den behandelten Zustand in den Ereignisdaten.If you mark this event as handled in class handling, subevents are still raised; however, they pass the handled state in the event data. Wenn das Ereignis in der Klassen Behandlung behandelt wird, werden Instanzhandler für die untergeordneten Ereignisse nicht aufgerufen, es sei denn, Sie verwenden explizit AddHandler(RoutedEvent, Delegate, Boolean) mit handledEventsToo true, um Handler anzufügen.If the event is handled in class handling, instance handlers for the subevents are not invoked unless you explicitly use AddHandler(RoutedEvent, Delegate, Boolean) with handledEventsToo true in order to attach handlers. Klassen Handler werden auch dann nicht aufgerufen, wenn diese Klassen Handler bei der RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) Signatur mit handledEventsToo trueregistriert wurden.Class handlers also are not invoked unless those class handlers were registered with the RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) signature with handledEventsToo true. Durch die Behandlung von OnPreviewMouseDownwird impliziert, dass die Klassen Behandlung alle möglichen Aktionen bei der MouseButton-Durchführung berücksichtigt hat.By handling OnPreviewMouseDown, you are implying that your class handling accounted for all possible mouse button down actions. Dieses Verhalten ist möglicherweise nicht erwünscht. Verwenden Sie daher Vorsicht, wenn Sie diese virtuelle Methode verwenden, um Ereignisse als behandelt zu markieren.This behavior might be unwanted; Therefore, use caution when you use this virtual method to mark events as handled.

Jedes der Schaltflächen spezifischen direkten Ereignisse verfügt auch über eine Virtual On *-Methode. Beachten Sie, ob das Überschreiben dieser Schaltflächen spezifischen Klassen Handler besser geeignet ist.Each of the button-specific direct events also has a virtual On* method; consider whether overriding these button-specific class handlers might be more appropriate.

Diese Methode hat keine Standard Implementierung.This method has no default implementation. Da diese Methode von einer Zwischenklasse in der Vererbung implementiert werden kann, wird empfohlen, dass Sie die Basis Implementierung in der Implementierung von aufzurufen.Because an intermediate class in the inheritance might implement this method, we recommend that you call the base implementation in your implementation.

Der Zweck dieser Methode ähnelt dem Common Language Runtime (CLR)common language runtime (CLR)-Ereignis Muster bei *-Methoden: Diese Methode bietet die Möglichkeit, das übereinstimmende Ereignis aus abgeleiteten Klassen zu behandeln, indem ein Klassen Handler anstelle eines Instanzhandlers festgelegt wird.The purpose of this method is similar to the Common Language Runtime (CLR)common language runtime (CLR) event pattern On* methods: this method provides the means to handle the matching event from derived classes by establishing a class handler instead of an instance handler. In diesem Fall ist das Übereinstimmungs Ereignis ein Routing Ereignis.In this case the matching event is a routed event. Das Implementierungs Muster der on *-Methoden unterscheidet sich für Routing Ereignisse, da ein-Routing Ereignis durch ein untergeordnetes-Element ausgelöst werden kann. Dies ist nicht notwendigerweise das Element, das Handler aufruft.The implementation pattern of the On* methods is different for routed events because a routed event can be raised by a child element, which is not necessarily the element that will invoke handlers. Daher muss Ihre Implementierung die Quell Eigenschaften der Ereignisdaten untersuchen.Therefore, your implementation needs to examine the source properties of the event data. In den meisten Fällen sollte nicht versucht werden, das Ereignis erneut auszuführen.It should not try to reraise the event in most cases.

Durch das Überschreiben dieser Methode oder durch das Registrieren von Klassen Handlern mit RegisterClassHandlerkönnen abgeleitete Klassen von UIElement private Klassenhandlermethoden aufzurufen, wenn das Ereignis entlang der Ereignis Route empfangen wird.Either by overriding this method or by registering class handlers with RegisterClassHandler, derived classes of UIElement can call private class handler methods when the event is received along the event route. Ein Szenario, in dem die Klassen Behandlung angebracht ist, besteht darin, die Ereignisdaten zu bearbeiten und das Routing Ereignis als behandelt zu markieren.One scenario where class handling is appropriate is to manipulate the event data and mark the routed event as handled. Ein anderes Szenario, das speziell für Vorschau Ereignisse gilt, besteht darin, diese behandelt zu markieren, sodass die entsprechenden bubblingerklassenhandler nicht aufgerufen werden.Another scenario that is specifically for Preview events is to mark them handled so that the matching bubbling class handlers are not invoked.

Gilt für:

Siehe auch