Freigeben über


UIElement.MouseLeftButtonDown Ereignis

Definition

Tritt auf, wenn die linke Maustaste gedrückt wird, während sich der Mauszeiger über diesem Element befindet.

public:
 virtual event System::Windows::Input::MouseButtonEventHandler ^ MouseLeftButtonDown;
public event System.Windows.Input.MouseButtonEventHandler MouseLeftButtonDown;
member this.MouseLeftButtonDown : System.Windows.Input.MouseButtonEventHandler 
Public Custom Event MouseLeftButtonDown As MouseButtonEventHandler 

Ereignistyp

Implementiert

Hinweise

Obwohl dieses Routingereignis einer sprudelnden Route durch eine Elementstruktur zu folgen scheint, handelt es sich tatsächlich um ein direktes Routingereignis, das entlang der Elementstruktur von jedem UIElementausgelöst und neu geordnet wird.

Dieses Ereignis ist eines von mehreren verwandten Ereignissen, die die Maustasten-Besonderheiten eines zugrunde liegenden Mouse.MouseDown Ereignisses melden, bei dem es sich um ein angefügtes Ereignis handelt, das von jedem Element entlang einer Ereignisroute verarbeitet wird.

Die Ereignisdaten dieses Ereignisses machen die Ereignisdaten des zugrunde liegenden Mouse.MouseDown Ereignisses verfügbar. Wenn dieses Ereignis als entlang der Ereignisroute als behandelt markiert wird, werden die maustastenspezifischen Ereignisse weiterhin ausgelöst. Jedoch müssen Handler der maustastenspezifischen Ereignisse hinzugefügt werden, indem explizit aufgerufen AddHandlerwird, mit der Option, Ereignisse zu behandeln, die bereits als behandelt markiert sind, um listener für das Ereignis zu sein. Wenn Sie behandelt markieren MouseLeftButtonDown , wird Mouse.MouseDown im Wesentlichen für alle weiteren Listener entlang der Route und für alle zugehörigen Ereignisse markiert. Dies schließt möglicherweise vom Klassenhandler generierte Ereignisse wie MouseDoubleClickein.

Stellen Sie sich dieses Ereignis (und andere Mouse-Button-Ereignisse auf UIElement) konzeptionell als "Dienst" der Maus vor (mit der von der Mouse -Klasse bereitgestellten Dienstdefinition). Das Ereignis fügt den Komfort hinzu, dass die Maustastenzustände (links-rechts, nach oben) der ursprünglichen Mausereignisse in den Ereignisdaten nicht überprüft werden müssen. Für komplexere Szenarien, z. B. die Überprüfung auf Zustände von nicht standardmäßigen Schaltflächen, müssen Sie möglicherweise die APIs für die -Klasse anstelle der MouseUIElementin verwenden.

Wichtig

Einige Steuerelementklassen verfügen möglicherweise über eine inhärente Klassenbehandlung für Maustastenereignisse. Das Nach-unten-Ereignis der linken Maustaste ist das wahrscheinlichste Ereignis, das eine Klassenbehandlung in einem Steuerelement hat. Die Klassenbehandlung markiert häufig das zugrunde liegende Mouse Klassenereignis als behandelt. Nachdem das Ereignis als behandelt markiert wurde, werden andere instance-Handler, die an dieses Element angefügt sind, normalerweise nicht ausgelöst. Alle anderen Klassen- oder instance-Handler, die an Elemente in der Sprudelrichtung zum Stamm in der Ui-Struktur angefügt sind, werden ebenfalls nicht normalerweise ausgelöst.

Sie können das problem beheben, das im vorherigen Wichtig beschrieben ist und weiterhin MouseLeftButtonDown Ereignisse für Ereignisse mit der linken Maustaste nach unten für eine abgeleitete Klasse mit Klassenbehandlung enthält, indem Sie eine der folgenden Lösungen verwenden:

  • Fügen Sie Handler für das PreviewMouseDown Ereignis an, das nicht als von den Steuerelementen behandelt markiert wird. Beachten Sie, dass die Route, da es sich um ein Vorschauereignis handelt, am Stamm beginnt und bis zum Steuerelement tunnelt.

  • Registrieren Sie einen Handler für das Steuerelement prozedural, indem Sie die Signaturoption aufrufen AddHandler und auswählen, mit der Handler auf Ereignisse lauschen können, auch wenn sie bereits in den Routingereignisdaten als behandelt markiert sind.

Informationen zum Routingereignis

Bezeichnerfeld MouseLeftButtonDownEvent
Routingstrategie Direkt
Delegat MouseButtonEventHandler
  • Überschreiben Sie OnMouseLeftButtonDown , um die Klassenbehandlung für dieses Ereignis in abgeleiteten Klassen zu implementieren.

Gilt für:

Weitere Informationen