UIElement.AddHandler UIElement.AddHandler UIElement.AddHandler Method

Definition

Fügt einen Routingereignishandler für ein bestimmtes Routingereignis hinzu, wobei der Handler der Handlerauflistung für das aktuelle Element hinzugefügt wird.Adds a routed event handler for a specified routed event, adding the handler to the handler collection on the current element.

Überlädt

AddHandler(RoutedEvent, Delegate) AddHandler(RoutedEvent, Delegate) 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.Adds a routed event handler for a specified routed event, adding the handler to the handler collection on the current element.

AddHandler(RoutedEvent, Delegate, Boolean) AddHandler(RoutedEvent, Delegate, Boolean) 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.Adds a routed event handler for a specified routed event, adding the handler to the handler collection on the current element. 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.Specify handledEventsToo as true to have the provided handler be invoked for routed event that had already been marked as handled by another element along the event route.

AddHandler(RoutedEvent, Delegate) AddHandler(RoutedEvent, Delegate) 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.Adds a routed event handler for a specified routed event, adding the handler to the handler collection on the current element.

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

Parameter

routedEvent
RoutedEvent RoutedEvent RoutedEvent

Ein Bezeichner für das zu behandelnde Routingereignis.An identifier for the routed event to be handled.

handler
Delegate Delegate Delegate

Ein Verweis auf die Handlerimplementierung.A reference to the handler implementation.

Implementiert

Hinweise

Sie können den gleichen Handler für das gleiche Ereignis mehrere Male hinzufügen, ohne eine Ausnahme auszulösen.You can add the same handler for the same event multiple times without raising an exception. Der Handler wird jedoch tatsächlich mehrere Male aufgerufen, wenn das Ereignis behandelt wird.However, the handler is actually invoked multiple times when the event is handled. Aus diesem Grund sollten Sie, wie dieses Verhalten Nebeneffekte haben kann, die in der Handlerimplementierung berücksichtigt werden sollten.Therefore, consider how this behavior might have side effects that should be accounted for in your handler implementation.

In der Regel verwenden Sie diese Methode die Implementierung der "add"-Accessor für die Microsoft .NETMicrosoft .NET Event-Zugriffsmuster der eines benutzerdefinierten Routingereignisses.You typically use this method to provide the implementation of the "add" accessor for the Microsoft .NETMicrosoft .NET event access pattern of a custom routed event.

AddHandler(RoutedEvent, Delegate, Boolean) AddHandler(RoutedEvent, Delegate, Boolean) 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.Adds a routed event handler for a specified routed event, adding the handler to the handler collection on the current element. 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.Specify handledEventsToo as true to have the provided handler be invoked for routed event that had already been marked as handled by another element along the event route.

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

Parameter

routedEvent
RoutedEvent RoutedEvent RoutedEvent

Ein Bezeichner für das zu behandelnde Routingereignis.An identifier for the routed event to be handled.

handler
Delegate Delegate Delegate

Ein Verweis auf die Handlerimplementierung.A reference to the handler implementation.

handledEventsToo
Boolean Boolean 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.true to register the handler such that it is invoked even when the routed event is marked handled in its event data; false to register the handler with the default condition that it will not be invoked if the routed event is already marked handled.

Der Standardwert ist false.The default is false.

Legen Sie die Anforderung zum erneuten Behandeln eines Routingereignisses nicht gewohnheitsmäßig fest.Do not routinely ask to rehandle a routed event.

Beispiele

Das folgende Beispiel implementiert einen Handler aufgerufen wird, auf die Initialized Ereignis auf einer Seite, die einen definierten Handler an eine der benannten Elemente auf der Seite mit anfügt handledEventsToo true.The following example implements a handler invoked on the Initialized event on a page that attaches a defined handler to one of the named elements on the page using handledEventsToo true. Dieser Handler wird aufgerufen werden, auch wenn ein anderes Element entlang der Route, die gemeinsam genutzte Ereignisdaten als behandelt, bevor das behandelnde Element in der Route erreicht gekennzeichnet.This handler would be invoked even if another element along the route marked the shared event data as handled before reaching the handling element in the route.

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 Low-Level-Eingabeereignisse in eine praktische Möglichkeit ist eine komplexe Aufgabe.Processing low-level input events in a practical way is a complex task. Viele Steuerelemente implementieren Verhalten, in denen ein bestimmtes Ereignis als behandelt markiert ist, und durch ein anderes intuitiver Ereignis ersetzt wird.Many controls implement behavior where a certain event is marked as handled, and is replaced by another more intuitive event. Im Allgemeinen wird ein Steuerelement nur ein Eingabeereignis Plattform als behandelt markieren Wenn einige Zweck dafür vorhanden ist.Generally, a control will only mark a platform input event as handled if there is some design intention for doing so. In bestimmten Szenarien ist möglicherweise die Absichten Entwurf nicht was erfordert, dass Ihre bestimmten Behandlung des Eingabeereignisses.In certain scenarios, those design intentions might not be what your particular handling of the input event requires. Es ist für diese Szenarien, dass die Registrierung Handler mit handledEventsToo als true eignet.It is for these scenarios that registering handlers with handledEventsToo as true is appropriate. Aber Sie sollten dies nicht regelmäßig.But you should not do this routinely. Handler als Reaktion auf alle Ereignisse aufrufen, auch wenn verarbeitet, wird Ihre eigene Verarbeitungslogik Anwendungsereignis erschweren.Invoking handlers in response to all events even if handled will complicate your own application event processing logic. Eine Abnahme der Leistung möglicherweise angezeigt werden, wenn die Handlerlogik sehr umfangreich ist.You may see a decrease in performance if the handler logic is substantial. Reservieren Sie die Verwendung von Anhängen von Handlern für bereits behandelten Ereignisse für Situationen, in denen Sie bereits während des Entwicklungsprozesses ermittelt haben, die bestimmte Steuerelemente Ereignisse verarbeiten, die Sie weiterhin mit der Anwendungslogik behandeln möchten.You should reserve the use of attaching handlers for already-handled events for situations where you have already discovered during the development process that certain controls are handling events that you still want to handle with application logic.

Ein weiteres Verfahren zum Vermeiden von Klassenbehandlungsverhalten von bestimmten Ebenenkombinationen Event-Steuerelement ist die Verwendung des Ereignisses die Vorschau Alternative.Another technique for avoiding the class handling behavior of certain event-control combinations is to use that event's preview alternative. Z. B. wenn MouseLeftButtonDown als behandelt markiert wird von der Klassenbehandlung, Sie möglicherweise zum Hinzufügen von Handlern für PreviewMouseLeftButtonDown stattdessen.For example, if MouseLeftButtonDown is marked handled by class handling, you might be able to add handlers for PreviewMouseLeftButtonDown instead.

Sie können den gleichen Handler für das gleiche Ereignis mehrere Male hinzufügen, ohne eine Ausnahme auszulösen.You can add the same handler for the same event multiple times without raising an exception. Der Handler wird jedoch tatsächlich mehrere Male aufgerufen, wenn das Ereignis behandelt wird.However, the handler is actually invoked multiple times when the event is handled. Aus diesem Grund sollten Sie, wie dieses Verhalten Nebeneffekte haben kann, die in der Handlerimplementierung berücksichtigt werden sollten.Therefore, consider how this behavior might have side effects that should be accounted for in your handler implementation.

In der Regel verwenden Sie diese Methode die Implementierung der "add"-Accessor für die Microsoft .NETMicrosoft .NET Event-Zugriffsmuster der eines benutzerdefinierten Routingereignisses.You typically use this method to provide the implementation of the "add" accessor for the Microsoft .NETMicrosoft .NET event access pattern of a custom routed event.

Gilt für: