Mouse.MouseDown Mouse.MouseDown Mouse.MouseDown Attached Event

Definition

Tritt auf, wenn eine Maustaste gedrückt wird.Occurs when any mouse button is depressed.

see AddMouseDownHandler, and RemoveMouseDownHandler
see AddMouseDownHandler, and RemoveMouseDownHandler
see AddMouseDownHandler, and RemoveMouseDownHandler

Hinweise

Um zu ermitteln, welche Maustaste gedrückt wurde, über ChangedButton prüfen Sie die MouseButtonEventArgs -Eigenschaft in der, die an den Handler übergebenen wirdTo determine which mouse button was depressed, check the ChangedButton property in the MouseButtonEventArgs passed to the handler.

Dies ist ein angefügtes Ereignis.This is an attached event. WPFWPFimplementiert angefügte Ereignisse als Routing Ereignisse.implements attached events as routed events. Angefügte Ereignisse sind im XAMLXAML Grunde ein sprach Konzept für das verweisen auf Ereignisse, die für Objekte behandelt werden können, die dieses Ereignis WPFWPF nicht definieren. Dies wird dadurch erweitert, dass das Ereignis eine Route durchlaufen kann.Attached events are fundamentally a XAMLXAML language concept for referencing events that can be handled on objects that do not define that event, which WPFWPF expands upon by also enabling the event to traverse a route. Angefügte Ereignisse haben im Code keine Syntax für die direkte Handhabung. zum Anfügen von Handlern für ein Routing Ereignis im Code verwenden Sie eine angegebene Add *-Handlermethode.Attached events do not have a direct handling syntax in code; to attach handlers for a routed event in code, you use a designated Add*Handler method. Weitere Informationen finden Sie unter Übersicht über angefügte Ereignisse.For details, see Attached Events Overview.

Das Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) Framework baut auf diesem angefügten Ereignis auf, indem es als zwei Common Language Runtime (CLR)common language runtime (CLR) verschiedene Ereignisse UIElement in ContentElementund MouseLeftButtonDown angezeigt MouseRightButtonDownwird: und.The Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) framework builds on this attached event by surfacing it as two different Common Language Runtime (CLR)common language runtime (CLR) events on UIElement and ContentElement: MouseLeftButtonDown and MouseRightButtonDown. Diese Implementierungen behandeln das zugrunde MouseDown liegende Ereignis und lesen die Argumente des Ereignisses, um zu bestimmen, ob die linke oder die Rechte Maustaste beteiligt war.These implementations handle the underlying MouseDown event and read the arguments of the event to determine whether the left or right mouse button was involved. Für eine drei-Schaltflächen-Maus gibt es keine Ereignis Unterstützung auf Frameworkebene für die Schaltfläche Center.For a three-button mouse, there is no framework-level event support for the center button. Sie sollten das MouseDown -Ereignis verwenden und den MiddleButton -Status in den Ereignis Argumenten überprüfen.You should use the MouseDown event and check the MiddleButton state in the event arguments.

Wichtig

Einige ContentElement abgeleitete Klassen, die über Steuerelement ähnliches Verhalten verfügen, Hyperlinkz. b., verfügen möglicherweise über eine inhärente Klassen Behandlung für Maustasten Ereignisse.A few ContentElement derived classes that have control-like behavior, for example, Hyperlink, might have inherent class handling for mouse button events. Das Ereignis mit der linken Maustaste auf das Ereignis ist das wahrscheinlichste Ereignis, um eine Klassen Behandlung in einem-Steuerelement zu erhalten.The left mouse button down event is the most likely event to have class handling in a control. Die Klassen Behandlung markiert häufig das zugrunde Mouse liegende Klassen Ereignis als behandelt.The class handling often marks the underlying Mouse class event as handled. Wenn das Ereignis als behandelt markiert ist, werden andere Instanzhandler, die diesem Element zugeordnet sind, normalerweise nicht ausgelöst.Once the event is marked handled, other instance handlers that are attached to that element are not ordinarily raised. Alle anderen Klassen-oder Instanzhandler, die an Elemente in der Blasen Richtung an den Stamm in der UI-Struktur angefügt werden, werden normalerweise nicht ausgelöst.Any other class or instance handlers that are attached to elements in the bubbling direction towards the root in the UI tree are also not ordinarily raised.

Sie können das Problem beheben, das im vorangehenden wichtigen Hinweis beschrieben wird, und MouseDown dennoch Ereignisse für die linken Maustaste auf eine abgeleitete Klasse empfangen, die eine Klassen Behandlung bietet, indem Sie eine der folgenden Lösungen verwenden:You can resolve the issue that is outlined in the preceding Important note and still receive MouseDown events for left mouse button down events on a derived class that has class handling by using either of these solutions:

  • Fügen Sie Handler für das PreviewMouseDown -Ereignis an, das von den-Steuerelementen nicht als behandelt markiert ist.Attach handlers for the PreviewMouseDown event, which is not marked as handled by the controls. Da es sich hierbei um ein Vorschau Ereignis handelt, beginnt die Route im Stammverzeichnis und wird zum-Steuerelement.Notice that because this is a preview event, the route starts at the root and tunnels down to the control.

  • Registrieren Sie einen Handler für das Steuerelement, indem AddHandler Sie aufrufen und die Signatur Option auswählen, mit der Handler Ereignisse überwachen können, auch wenn Sie in den Routing Ereignisdaten bereits als behandelt markiert sind.Register a handler on the control procedurally by calling AddHandler and choosing the signature option that enables handlers to listen for events even if they are already marked as handled in the routed event data.

Bei gerouteten Ereignissen, die mit der Maus in Beziehung stehen, sollten Sie darauf achten, wie oder wann Sie behandelt werden.For routed events that relate to the mouse, be careful about how or when you mark them handled. Die Schwierigkeit, die richtigen Entscheidungen zu treffen, ob übergeordnete Elemente auch über eine bestimmte Maus Aktion informiert werden sollen, ist tatsächlich WPFWPF der Grund dafür, dass das Framework das Modell für das Auftreten des zugrunde liegenden CLRCLR mouserouting Ereignisses als Ereignisse entlang der Route.The difficulty in making the appropriate choices about whether parent elements should also be informed about any given mouse action is in fact why the WPFWPF framework chose the model of having the underlying mouse routed event be surfaced as CLRCLR events along the route. Ähnliche Probleme sind bei der Tunnelung von Mausereignissen aufgetreten.Similar issues exist with tunneling mouse events. Sollten Sie das-Ereignis behandeln und nicht von weiteren untergeordneten Elementen in der Quelle behandelt werden, und wie würde sich dies auf die Zusammenführung eines Steuer Elements auswirken, bei dem die zusammengesetzten Elemente möglicherweise erwartete Maus Verhalten aufweisen?Should you handle the event and not have it be handled by further children toward the source, and how would that affect compositing a control where the compositing pieces might have expected mouse behaviors?

Informationen zum RoutingereignisRouted Event Information

BezeichnerfeldIdentifier field MouseDownEvent
Routing StrategieRouting strategy BlasenBubbling
delegateDelegate MouseButtonEventHandler

Gilt für: