ContentElement.OnMouseDown(MouseButtonEventArgs) Methode

Definition

Wird aufgerufen, wenn ein nicht behandeltes, angefügtes MouseDown-Ereignis beim Durchlauf ein von dieser Klasse abgeleitetes Element erreicht.Invoked when an unhandled MouseDown attached 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 public:
 virtual void OnMouseDown(System::Windows::Input::MouseButtonEventArgs ^ e);
protected internal 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 Friend Overridable Sub OnMouseDown (e As MouseButtonEventArgs)

Parameter

e
MouseButtonEventArgs

Das MouseButtonEventArgs, das die Ereignisdaten enthält.The MouseButtonEventArgs that contains the event data. Diese Ereignisdaten melden Details zur Maustaste, die gedrückt wurde, und zum behandelten Zustand.This event data reports details about the mouse button that was pressed and the handled state.

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.MouseDown-Ereignis als behandelt markieren, wird OnMouseDown nicht aufgerufen.If these input system features mark the Mouse.MouseDown event as handled, OnMouseDown 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: MouseLeftButtonDown und MouseRightButtonDown.If you use this class handler to mark the event as handled, you potentially impact the following events: MouseLeftButtonDown and MouseRightButtonDown. Jedes dieser Ereignisse wird möglicherweise für das empfangende Element ausgelöst, wenn Mouse.MouseDown empfangen wird.Either of these events may be raised on the receiving element when Mouse.MouseDown 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 OnMouseDownwird impliziert, dass die Klassen Behandlung alle möglichen Aktionen bei der MouseButton-Durchführung berücksichtigt hat.By handling OnMouseDown, 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 für*-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 ContentElement 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 ContentElement 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.

Gilt für:

Siehe auch