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

UIElement.AddHandler-Methode (RoutedEvent, Delegate, Boolean)

Fügt einen Routingereignis-Handler für ein bestimmtes Routingereignis hinzu, wobei der Handler der Handlerauflistung für das aktuelle Element hinzugefügt wird. Legen Sie handledEventsToo auf true fest, damit der bereitgestellte Handle für ein Routingereignis aufgerufen wird, das bereits von einem anderen Element auf der Ereignisroute als behandelt markiert wurde.

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

public void AddHandler(
	RoutedEvent routedEvent,
	Delegate handler,
	bool handledEventsToo
)

Parameter

routedEvent
Typ: System.Windows.RoutedEvent
Ein Bezeichner für das zu behandelnde Routingereignis.
handler
Typ: System.Delegate
Ein Verweis auf die Handlerimplementierung.
handledEventsToo
Typ: System.Boolean
true , wenn der Handler registriert werden soll, sodass er selbst dann aufgerufen wird, wenn das Routingereignis in den zugehörigen Ereignisdaten als behandelt markiert ist, false, wenn der Handler mit der Standardbedingung registriert werden soll, dass er nicht aufgerufen wird, wenn das Routingereignis bereits als behandelt markiert ist.
Die Standardeinstellung ist false.
Stellen Sie keine Routineanforderung zum erneuten Behandeln eines Routingereignisses. Weitere Informationen finden Sie in den Hinweisen.

Das effiziente Verarbeiten von Eingabeereignissen auf niedriger Ebene ist immer eine komplexe Aufgabe. Viele Steuerelemente implementieren ein Verhalten, bei dem ein bestimmtes Ereignis als behandelt markiert wird und durch ein anderes, intuitiveres Ereignis ersetzt wird. Im Allgemeinen markiert ein Steuerelement ein Plattform-Eingabeereignis nur dann als behandelt, wenn im Entwurf damit ein bestimmtes Ziel verfolgt wird. In bestimmten Szenarios entsprechen diese Entwurfsziele möglicherweise nicht den jeweiligen Anforderungen an die Behandlung des Eingabeereignisses. In diesen Szenarios empfiehlt sich das Registrieren von Handlern mit handledEventsToo, wie true. Dies sollte jedoch nicht routinemäßig ausgeführt werden. Das Aufrufen von Handlern für alle Ereignisse, selbst wenn diese bereits behandelt sind, gestaltet die Ereignisverarbeitungslogik in der Anwendung sehr kompliziert. Möglicherweise ist eine Abnahme der Leistung zu verzeichnen, wenn die Handlerlogik umfangreich ist. Behalten Sie sich das Anfügen von Handlern für bereits behandelte Ereignisse für Situationen vor, in denen Sie bereits während des Entwicklungsprozesses festgestellt haben, dass gewisse Steuerelemente Ereignisse behandeln, die auch von der Anwendungslogik behandelt werden sollen.

Sie können das Klassenbehandlungsverhalten bestimmter Ereignis/Steuerelement-Kombinationen auch umgehen, indem Sie die Vorschaualternative des betreffenden Ereignisses verwenden. Wenn beispielsweise MouseLeftButtonDown von der Klassenbehandlung markiert wird, können Sie u. U. stattdessen Handler für PreviewMouseLeftButtonDown hinzufügen.

Sie können mehrmals denselben Handler für ein bestimmtes Ereignis hinzufügen, ohne dass eine Ausnahme ausgelöst wird. Der Handler wird beim Behandeln des Ereignisses jedoch tatsächlich mehrmals aufgerufen. Bedenken Sie daher mögliche Nebeneffekte dieses Verhaltens, die in der Handlerimplementierung berücksichtigt werden müssen.

Typischerweise wird mit dieser Methode die Implementierung des add-Accessors für das Zugriffsmuster eines Microsoft .NET-Ereignisses eines benutzerdefinierten Routingereignisses bereitgestellt.

Im folgenden Beispiel wird ein für das Initialized-Ereignis aufgerufener Handler für eine Seite implementiert, der an eines der benannten Elemente auf der Seite mithilfe von handledEventsToo true einen definierten Handler anfügt. Dieser Handler wird auch dann aufgerufen, wenn ein anderes Element auf der Route die gemeinsam verwendeten Ereignisdaten als behandelt markiert hat, bevor das behandelnde Element auf der Route erreicht wird.


void PrimeHandledToo(object sender, EventArgs e)
{
    dpanel2.AddHandler(Button.ClickEvent, new RoutedEventHandler(GetHandledToo), true);
}


.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