ContentElement.AddHandler Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Fügt einen Routingereignishandler für ein bestimmtes Routingereignis hinzu, wobei der Handler der Handlerauflistung für das aktuelle Element hinzugefügt wird.
Überlädt
AddHandler(RoutedEvent, Delegate) |
Fügt einen Routingereignishandler für ein bestimmtes Routingereignis hinzu, wobei der Handler der Handlerauflistung für das aktuelle Element hinzugefügt wird. |
AddHandler(RoutedEvent, Delegate, Boolean) |
Fügt einen Routingereignishandler für ein bestimmtes Routingereignis hinzu, wobei der Handler der Handlerauflistung für das aktuelle Element hinzugefügt wird. Legen Sie |
AddHandler(RoutedEvent, Delegate)
Fügt einen Routingereignishandler für ein bestimmtes Routingereignis hinzu, wobei der Handler der Handlerauflistung für das aktuelle Element hinzugefügt wird.
public:
virtual void AddHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler);
public void AddHandler (System.Windows.RoutedEvent routedEvent, Delegate handler);
abstract member AddHandler : System.Windows.RoutedEvent * Delegate -> unit
override this.AddHandler : System.Windows.RoutedEvent * Delegate -> unit
Public Sub AddHandler (routedEvent As RoutedEvent, handler As Delegate)
Parameter
- routedEvent
- RoutedEvent
Ein Bezeichner für das zu behandelnde Routingereignis.
- handler
- Delegate
Ein Verweis auf die Handlerimplementierung.
Implementiert
Hinweise
Sie können denselben Handler für dasselbe Ereignis mehrmals hinzufügen, ohne eine Ausnahme zu auslösen. Der Handler wird jedoch tatsächlich mehrmals aufgerufen, wenn das Ereignis behandelt wird. Überlegen Sie daher, wie dieses Verhalten Nebenwirkungen haben kann, die in Ihrer Handlerimplementierung berücksichtigt werden sollten.
In der Regel verwenden Sie diese Methode, um die Implementierung des Accessors "add" für das Microsoft .NET-Ereigniszugriffsmuster eines benutzerdefinierten Routingereignisses bereitzustellen.
Gilt für:
AddHandler(RoutedEvent, Delegate, Boolean)
Fügt einen Routingereignishandler 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 Handler für ein Routingereignis aufgerufen wird, das bereits von einem anderen Element auf der Ereignisroute als behandelt markiert wurde.
public:
void AddHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler, bool handledEventsToo);
public void AddHandler (System.Windows.RoutedEvent routedEvent, Delegate handler, bool handledEventsToo);
member this.AddHandler : System.Windows.RoutedEvent * Delegate * bool -> unit
Public Sub AddHandler (routedEvent As RoutedEvent, handler As Delegate, handledEventsToo As Boolean)
Parameter
- routedEvent
- RoutedEvent
Ein Bezeichner für das zu behandelnde Routingereignis.
- handler
- Delegate
Ein Verweis auf die Handlerimplementierung.
- handledEventsToo
- 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.
Der Standardwert ist false
.
Legen Sie die Anforderung zum erneuten Behandeln eines Routingereignisses nicht gewohnheitsmäßig fest.
Beispiele
Im folgenden Beispiel wird ein Handler implementiert, der für das Initialized -Ereignis auf einer Seite aufgerufen wird, die einen definierten Handler mit einem der benannten Elemente auf der Seite anfügt handledEventsToo
true
. Dieser Handler wird auch dann aufgerufen, wenn ein anderes Element entlang der Route die freigegebenen Ereignisdaten als behandelt markiert hat, bevor das Handling-Element in der Route erreicht wird.
void PrimeHandledToo(object sender, EventArgs e)
{
dpanel2.AddHandler(Button.ClickEvent, new RoutedEventHandler(GetHandledToo), true);
}
Private Sub PrimeHandledToo(ByVal sender As Object, ByVal e As EventArgs)
dpanel2.AddHandler(Button.ClickEvent, New RoutedEventHandler(AddressOf GetHandledToo), True)
End Sub
Hinweise
Die praktische Verarbeitung von Eingabeereignissen auf niedriger Ebene ist eine komplexe Aufgabe. Viele Steuerelemente implementieren Verhalten, bei dem ein bestimmtes Ereignis als behandelt gekennzeichnet wird, und wird durch ein anderes intuitiveres Ereignis ersetzt. Im Allgemeinen markiert ein Steuerelement ein Plattformeingabeereignis nur dann als behandelt, wenn dafür eine Entwurfsabsicht besteht. In bestimmten Szenarien sind diese Entwurfsabsichten möglicherweise nicht das, was Ihre spezielle Verarbeitung des Eingabeereignisses erfordert. Für diese Szenarien wird die Registrierung von handledEventsToo
Handlern bei true
bedarfsgerecht ausgeführt. Aber Sie sollten dies nicht routinemäßig tun. Das Aufrufen von Handlern als Reaktion auf alle Ereignisse, auch wenn sie verarbeitet werden, erschwert ihre eigene Anwendungsereignisverarbeitungslogik. Es kann zu einer Leistungsminderung führen, wenn die Handlerlogik erheblich ist. Sie sollten die Verwendung des Anfügens von Handlern für bereits behandelte Ereignisse für Situationen reservieren, in denen Sie bereits während des Entwicklungsprozesses festgestellt haben, dass bestimmte Steuerelemente Ereignisse behandeln, die Sie weiterhin mit Anwendungslogik behandeln möchten.
Eine weitere Methode zum Vermeiden des Klassenbehandlungsverhaltens bestimmter Ereignissteuerungskombinationen ist die Verwendung der Vorschaualternative dieses Ereignisses. Wenn MouseLeftButtonDown beispielsweise von der Klassenbehandlung behandelt markiert wird, können Sie stattdessen möglicherweise Handler für PreviewMouseLeftButtonDown hinzufügen.
Sie können denselben Handler für dasselbe Ereignis mehrmals hinzufügen, ohne eine Ausnahme zu auslösen. Der Handler wird jedoch tatsächlich mehrmals aufgerufen, wenn das Ereignis behandelt wird. Überlegen Sie daher, wie dieses Verhalten Nebenwirkungen haben kann, die in Ihrer Handlerimplementierung berücksichtigt werden sollten.
In der Regel verwenden Sie diese Methode, um die Implementierung des Accessors "add" für das Microsoft .NET-Ereigniszugriffsmuster eines benutzerdefinierten Routingereignisses bereitzustellen.
Gilt für:
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für