Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

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

 

Veröffentlicht: Oktober 2016

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.

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

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

Parameter

routedEvent
Type: System.Windows.RoutedEvent

Ein Bezeichner für das zu behandelnde Routingereignis.

handler
Type: System.Delegate

Ein Verweis auf die Handlerimplementierung.

handledEventsToo
Type: 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.

Der Standardwert ist false.

Legen Sie die Anforderung zum erneuten Behandeln eines Routingereignisses nicht gewohnheitsmäßig fest. Weitere Informationen finden Sie in den Hinweisen.

Processing low-level input events in a practical way is a complex task. Many controls implement behavior where a certain event is marked as handled, and is replaced by another more intuitive event. Generally, a control will only mark a platform input event as handled if there is some design intention for doing so. In certain scenarios, those design intentions might not be what your particular handling of the input event requires. It is for these scenarios that registering handlers with handledEventsToo as true is appropriate. But you should not do this routinely. Invoking handlers in response to all events even if handled will complicate your own application event processing logic. You may see a decrease in performance if the handler logic is substantial. 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.

Another technique for avoiding the class handling behavior of certain event-control combinations is to use that event's preview alternative. For example, if E:System.Windows.UIElement.MouseLeftButtonDown is marked handled by class handling, you might be able to add handlers for E:System.Windows.UIElement.PreviewMouseLeftButtonDown instead.

You can add the same handler for the same event multiple times without raising an exception. However, the handler is actually invoked multiple times when the event is handled. Therefore, consider how this behavior might have side effects that should be accounted for in your handler implementation.

You typically use this method to provide the implementation of the "add" accessor for the TLA#tla_net event access pattern of a custom routed event.

The following example implements a handler invoked on the E:System.Windows.FrameworkElement.Initialized event on a page that attaches a defined handler to one of the named elements on the page using handledEventsToo true. 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);
}

.NET Framework
Verfügbar seit 3.0
Silverlight
Verfügbar seit 3.0
Windows Phone Silverlight
Verfügbar seit 7.0
Zurück zum Anfang
Anzeigen: