(0) exportieren Drucken
Alle erweitern
Erweitern Minimieren
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

UIElement.OnMouseDown-Methode

Wird aufgerufen, wenn ein nicht behandeltes Mouse.MouseDown Ereignis auf seinem Weg (Route) ein Element erreicht, das von dieser Klasse abgeleitet ist. Implementieren Sie diese Methode, um eine Klassenbehandlung für dieses Ereignis hinzuzufügen.

Namespace:  System.Windows
Assembly:  PresentationCore (in PresentationCore.dll)

protected virtual void OnMouseDown(
	MouseButtonEventArgs e
)

Parameter

e
Typ: System.Windows.Input.MouseButtonEventArgs
Die Instanz von MouseButtonEventArgs, die die Ereignisdaten enthält. Diese Ereignisdaten enthalten Einzelheiten zur gedrückten Maustaste sowie zum Behandlungszustand.

Maustastenaktionen werden ebenfalls von einem speziellen Eingabe-Manager behandelt. Andere Programmierfeatures, die von Maustastenaktionen abhängig sind, z. B. Eingaben und Befehlsbindungen, rufen u. U. Handler für die Aktion auf, bevor diese als allgemeine Maustastenaktion verfügbar gemacht wird. Wenn diese Eingabesystemfeatures das Mouse.MouseDown-Ereignis als behandelt markieren, wird OnMouseDown nicht aufgerufen.

Wenn Sie das Ereignis mit diesem Klassenhandler als behandelt markieren, wirkt sich dies möglicherweise auf die folgenden Ereignisse aus: MouseLeftButtonDown und MouseRightButtonDown. Beide Ereignisse können für das empfangende Element ausgelöst werden, wenn Mouse.MouseDown empfangen wird.

Wenn Sie dieses Ereignis in der Klassenbehandlung als unbehandelt markieren, werden immer noch Unterereignisse ausgelöst. Diese übergeben jedoch in den Ereignisdaten den behandelten Zustand. Wenn das Ereignis in der Klassenbehandlung behandelt wird, werden keine Instanzhandler für die Unterereignisse aufgerufen, es sei denn, Sie verwenden AddHandler(RoutedEvent, Delegate, Boolean) explizit mit handledEventsTootrue, um Handler anzufügen. Klassenhandler werden ebenfalls nicht aufgerufen, es sei denn, diese wurden mit der RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean)-Signatur mit handledEventsToo gleich true registriert. Durch das Behandeln von OnMouseDown wird impliziert, dass die Klassenbehandlung für alle möglichen Aktionen mit gedrückter Maustaste zuständig ist. Dieses Verhalten kann unerwünscht sein. Gehen Sie daher mit Umsicht vor, wenn Sie Ereignisse mithilfe dieser virtuellen Methode als behandelt markieren.

Für jedes der tastenspezifischen direkten Ereignisse ist auch eine virtuelle On*-Methode verfügbar. Möglicherweise empfiehlt es sich eher, diese tastenspezifischen Klassenhandler zu überschreiben.

Diese Methode verfügt über keine Standardimplementierung. Da diese Methode von einer Zwischenklasse in der Vererbung implementiert werden kann, empfiehlt es sich, die Basisimplementierung in der Implementierung aufzurufen.

Der Zweck dieser Methode entspricht weitestgehend den On*-Methoden des common language runtime (CLR)-Ereignismustern: Diese Methode bietet Möglichkeiten für das Behandeln des entsprechenden Ereignisses in abgeleiteten Klassen durch das Festlegen eines Klassenhandlers anstelle eines Instanzhandlers. In diesem Fall ist das entsprechende Ereignis ein Routingereignis. Das Implementierungsmuster der On*-Methoden für Routingereignisse ist abweichend, da ein Routingereignis von einem untergeordneten Element ausgelöst werden kann, wobei es sich nicht unbedingt um das Element handeln muss, das die Handler aufruft. Deshalb muss die Implementierung die Quelleigenschaften der Ereignisdaten untersuchen. In den meisten Fällen sollte nicht versucht werden, das Ereignis erneut auszulösen.

Durch das Überschreiben dieser Methode oder durch das Registrieren von Klassenhandlern bei RegisterClassHandler können abgeleitete Klassen von UIElement private Klassenhandlermethoden aufrufen, wenn das Ereignis entlang der Ereignisroute empfangen wird. Die Klassenbehandlung ist beispielsweise in einem Szenario angemessen, in dem die Ereignisdaten geändert werden und das Routingereignis als behandelt markiert wird.

.NET Framework

Unterstützt in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft