UIElement.AddHandler UIElement.AddHandler UIElement.AddHandler Method

Definición

Agrega un controlador de eventos enrutados para un evento enrutado especificado. Para ello, agrega el controlador a la colección de controladores en el elemento actual.Adds a routed event handler for a specified routed event, adding the handler to the handler collection on the current element.

Sobrecargas

AddHandler(RoutedEvent, Delegate) AddHandler(RoutedEvent, Delegate) AddHandler(RoutedEvent, Delegate)

Agrega un controlador de eventos enrutados para un evento enrutado especificado. Para ello, agrega el controlador a la colección de controladores en el elemento actual.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)

Agrega un controlador de eventos enrutados para un evento enrutado especificado. Para ello, agrega el controlador a la colección de controladores en el elemento actual.Adds a routed event handler for a specified routed event, adding the handler to the handler collection on the current element. Especifique handledEventsToo como true para que el controlador proporcionado se invoque para eventos enrutados que estén marcados como controlados por otro elemento en la ruta del evento.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)

Agrega un controlador de eventos enrutados para un evento enrutado especificado. Para ello, agrega el controlador a la colección de controladores en el elemento actual.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

Parámetros

routedEvent
RoutedEvent RoutedEvent RoutedEvent

Identificador del evento enrutado que se va a controlar.An identifier for the routed event to be handled.

handler
Delegate Delegate Delegate

Referencia a la implementación del controlador.A reference to the handler implementation.

Implementaciones

Comentarios

Puede agregar el mismo controlador para el mismo evento varias veces sin producir una excepción.You can add the same handler for the same event multiple times without raising an exception. Sin embargo, el controlador se invoca realmente varias veces cuando se controla el evento.However, the handler is actually invoked multiple times when the event is handled. Por lo tanto, considere cómo este comportamiento podría tener efectos secundarios que deben tenerse en cuenta en la implementación del controlador.Therefore, consider how this behavior might have side effects that should be accounted for in your handler implementation.

Este método se utiliza normalmente para proporcionar la implementación del descriptor de acceso "Agregar" para el Microsoft .NETMicrosoft .NET patrones de acceso de eventos de un evento enrutado personalizado.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)

Agrega un controlador de eventos enrutados para un evento enrutado especificado. Para ello, agrega el controlador a la colección de controladores en el elemento actual.Adds a routed event handler for a specified routed event, adding the handler to the handler collection on the current element. Especifique handledEventsToo como true para que el controlador proporcionado se invoque para eventos enrutados que estén marcados como controlados por otro elemento en la ruta del evento.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

Parámetros

routedEvent
RoutedEvent RoutedEvent RoutedEvent

Identificador del evento enrutado que se va a controlar.An identifier for the routed event to be handled.

handler
Delegate Delegate Delegate

Referencia a la implementación del controlador.A reference to the handler implementation.

handledEventsToo
Boolean Boolean Boolean

true para registrar el controlador invocado, aunque el evento enrutado esté marcado como controlado en los datos de evento; false para registrar el controlador con la condición predeterminada de que no se invocará si el evento enrutado ya está marcado como controlado.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.

De manera predeterminada, es false.The default is false.

No solicite de manera rutinaria volver a controlar un evento enrutado.Do not routinely ask to rehandle a routed event.

Ejemplos

El ejemplo siguiente implementa un controlador invocado en la Initialized eventos en una página que se adjunta un controlador definido en uno de los elementos con nombre en la página mediante 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. Este controlador se invocaría incluso si los datos de evento compartidos como controlado antes de alcanzar el elemento de control de la ruta de marcado de otro elemento en la ruta.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

Comentarios

Procesamiento de eventos de entrada de bajo nivel de una manera práctica es una tarea compleja.Processing low-level input events in a practical way is a complex task. Muchos controles implementan el comportamiento donde un determinado evento está marcado como controlado y se reemplaza por otro evento más intuitivo.Many controls implement behavior where a certain event is marked as handled, and is replaced by another more intuitive event. Por lo general, un control solo marcar un evento de entrada de la plataforma como controlado si hay alguna intención de diseño para hacerlo.Generally, a control will only mark a platform input event as handled if there is some design intention for doing so. En determinados escenarios, esas intenciones de diseño podrían no ser lo que requiere el control del evento de entrada concreto.In certain scenarios, those design intentions might not be what your particular handling of the input event requires. Para estos escenarios es que el registro controladores con handledEventsToo como true es adecuado.It is for these scenarios that registering handlers with handledEventsToo as true is appropriate. Pero no debe hacerlo periódicamente.But you should not do this routinely. Invocar los controladores en respuesta a todos los eventos incluso si controla complicará su propia lógica de procesamiento de eventos de aplicación.Invoking handlers in response to all events even if handled will complicate your own application event processing logic. Es posible que vea una disminución del rendimiento si la lógica del controlador es considerable.You may see a decrease in performance if the handler logic is substantial. Debe reservar el uso de adjuntar controladores de eventos ya controlados para las situaciones donde ya haya encontrado durante el proceso de desarrollo que ciertos controles están controlando los eventos que desea administrar con lógica de la aplicación.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.

Otra técnica para evitar el comportamiento de ciertas combinaciones de control de eventos de control de clases es usar la alternativa de vista previa de ese evento.Another technique for avoiding the class handling behavior of certain event-control combinations is to use that event's preview alternative. Por ejemplo, si MouseLeftButtonDown está marcado como controlado por el control de clases, es posible que pueda agregar controladores para PreviewMouseLeftButtonDown en su lugar.For example, if MouseLeftButtonDown is marked handled by class handling, you might be able to add handlers for PreviewMouseLeftButtonDown instead.

Puede agregar el mismo controlador para el mismo evento varias veces sin producir una excepción.You can add the same handler for the same event multiple times without raising an exception. Sin embargo, el controlador se invoca realmente varias veces cuando se controla el evento.However, the handler is actually invoked multiple times when the event is handled. Por lo tanto, considere cómo este comportamiento podría tener efectos secundarios que deben tenerse en cuenta en la implementación del controlador.Therefore, consider how this behavior might have side effects that should be accounted for in your handler implementation.

Este método se utiliza normalmente para proporcionar la implementación del descriptor de acceso "Agregar" para el Microsoft .NETMicrosoft .NET patrones de acceso de eventos de un evento enrutado personalizado.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.

Se aplica a