UIElement.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 angegebenes Routingereignis hinzu, und fügt den Handler der Handlerauflistung für das aktuelle Element hinzu.
Überlädt
AddHandler(RoutedEvent, Delegate) |
Fügt einen Routingereignishandler für ein angegebenes Routingereignis hinzu, und fügt den Handler der Handlerauflistung für das aktuelle Element hinzu. |
AddHandler(RoutedEvent, Delegate, Boolean) |
Fügt einen Routingereignishandler für ein angegebenes Routingereignis hinzu, und fügt den Handler der Handlerauflistung für das aktuelle Element hinzu. Geben Sie |
AddHandler(RoutedEvent, Delegate)
Fügt einen Routingereignishandler für ein angegebenes Routingereignis hinzu, und fügt den Handler der Handlerauflistung für das aktuelle Element hinzu.
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 routingfähige Ereignis, das behandelt werden soll.
- handler
- Delegate
Ein Verweis auf die Handlerimplementierung.
Implementiert
Hinweise
Sie können denselben Handler für dasselbe Ereignis mehrmals hinzufügen, ohne eine Ausnahme auslösen zu müssen. Der Handler wird jedoch mehrmals aufgerufen, wenn das Ereignis behandelt wird. Überlegen Sie daher, wie dieses Verhalten Nebenwirkungen haben kann, die in Der 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 angegebenes Routingereignis hinzu, und fügt den Handler der Handlerauflistung für das aktuelle Element hinzu. Geben Sie handledEventsToo
als true
an, damit der bereitgestellte Handler für routingfähiges Ereignis aufgerufen wird, das bereits von einem anderen Element entlang 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 routingfähige Ereignis, das behandelt werden soll.
- handler
- Delegate
Ein Verweis auf die Handlerimplementierung.
- handledEventsToo
- Boolean
true
den Handler so zu registrieren, dass er aufgerufen wird, auch wenn das Routingereignis in den Ereignisdaten als behandelt markiert wird; false
den Handler mit der Standardbedingung zu registrieren, dass er nicht aufgerufen wird, wenn das Routingereignis bereits als behandelt markiert ist.
Der Standardwert ist false
.
Bitten Sie nicht routinemäßig, ein routingfähiges Ereignis erneut abhanden zu setzen.
Beispiele
Im folgenden Beispiel wird ein Handler implementiert, der für das Initialized-Ereignis auf einer Seite aufgerufen wird, das einen definierten Handler an eines der benannten Elemente auf der Seite mithilfe von handledEventsToo
true
anfügt. Dieser Handler wird auch dann aufgerufen, wenn ein anderes Element entlang der Route die freigegebenen Ereignisdaten als behandelt markiert hat, bevor das Verarbeitungselement 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 Verarbeitung von Eingabeereignissen auf niedriger Ebene auf praktische Weise ist eine komplexe Aufgabe. Viele Steuerelemente implementieren Verhalten, bei dem ein bestimmtes Ereignis als behandelt markiert wird und durch ein anderes intuitiveres Ereignis ersetzt wird. Im Allgemeinen kennzeichnet ein Steuerelement nur ein Plattformeingabeereignis als behandelt, wenn dies beabsichtigt ist. In bestimmten Szenarien sind diese Entwurfsabsichten möglicherweise nicht das, was Ihre spezielle Behandlung des Eingabeereignisses erfordert. Für diese Szenarien ist die Registrierung von Handlern mit handledEventsToo
geeignet, da true
geeignet ist. Aber sie sollten dies nicht routinemäßig tun. Das Aufrufen von Handlern als Reaktion auf alle Ereignisse, auch wenn die Verarbeitung behandelt wird, erschwert Ihre eigene Anwendungsereignisverarbeitungslogik. Möglicherweise wird eine Leistungsminderung angezeigt, wenn die Handlerlogik erheblich ist. Sie sollten die Verwendung von Anfügehandlern 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 Technik zum Vermeiden des Klassenbehandlungsverhaltens bestimmter Ereignissteuerungskombinationen besteht darin, die Vorschaualternative dieses Ereignisses zu verwenden. Wenn MouseLeftButtonDown beispielsweise durch die Klassenbehandlung behandelt wird, können Sie stattdessen Handler für PreviewMouseLeftButtonDown hinzufügen.
Sie können denselben Handler für dasselbe Ereignis mehrmals hinzufügen, ohne eine Ausnahme auslösen zu müssen. Der Handler wird jedoch mehrmals aufgerufen, wenn das Ereignis behandelt wird. Überlegen Sie daher, wie dieses Verhalten Nebenwirkungen haben kann, die in Der 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.