Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original

UIElement.AddHandler (Método) (RoutedEvent, Delegate, Boolean)

Agrega un controlador de eventos enrutados para un evento enrutado especificado y agrega el controlador a la colección de controladores del elemento actual. Especifique handledEventsToo como true de modo que el controlador proporcionado se invoque para el evento enrutado ya marcado como controlado por otro elemento a lo largo de la ruta de evento.

Espacio de nombres:  System.Windows
Ensamblado:  PresentationCore (en PresentationCore.dll)

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

Parámetros

routedEvent
Tipo: System.Windows.RoutedEvent
Identificador del evento enrutado que se va a administrar.
handler
Tipo: System.Delegate
Referencia a la implementación del controlador.
handledEventsToo
Tipo: System.Boolean
true para registrar el controlador de tal forma que se invoque aunque el evento enrutado esté marcado como administrado en sus 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 administrado.
El valor predeterminado es false.
No solicite rutinariamente que se controle de nuevo un evento enrutado. Para obtener más información, vea la sección Comentarios.

Procesar los eventos de entrada de nivel inferior de una manera práctica es una tarea compleja. Muchos controles implementan el comportamiento por el que cierto evento se marca como controlado y se reemplaza por otro evento más intuitivo. Generalmente, un control sólo marca un evento de entrada de la plataforma como controlado si hay alguna intención de diseño para hacerlo. En ciertos escenarios, esas intenciones de diseño podrían no coincidir con lo que requiere el control concreto del evento de entrada. Es en estos escenarios donde resulta apropiado registrar los controladores con handledEventsToo como true. Sin embargo, no debe hacerse de manera rutinaria. Invocar los controladores en respuesta a todos los eventos aunque estén controlados complicaría la lógica de procesamiento de los eventos de la aplicación. Puede producirse una disminución del rendimiento si la lógica de controlador es sustancial. Debe reservar la asociación de los controladores a los eventos ya controlados para las situaciones donde ya ha detectado durante el proceso de desarrollo que ciertos controles están controlando eventos que aún desea controlar con la lógica de la aplicación.

Otra técnica para evitar el comportamiento de control de clases de ciertas combinaciones de eventos y controles es usar la alternativa de la vista previa de ese evento. Por ejemplo, si MouseLeftButtonDown se marca como administrado por el control de clases, podría agregar los controladores para PreviewMouseLeftButtonDown en su lugar.

Puede agregar varias veces el mismo controlador para el mismo evento sin que se provoque ninguna excepción. En realidad, el controlador se invoca varias veces cuando se controla el evento. Por consiguiente, tenga en cuenta que este comportamiento puede tener efectos secundarios que se deben considerar a la hora de implementar el controlador.

Normalmente, este método se usa para proporcionar la implementación del descriptor de acceso "add" para el modelo de acceso a eventos de Microsoft .NET de un evento enrutado personalizado.

En el ejemplo siguiente se implementa un controlador invocado en el evento Initialized en una página que asocia un controlador definido a uno de los elementos con nombre en la página mediante handledEventsTootrue. Se invocaría este controlador aunque otro elemento a lo largo de la ruta marcara los datos de evento compartidos como administrados antes de alcanzar el elemento de control en la ruta.


void PrimeHandledToo(object sender, EventArgs e)
{
    dpanel2.AddHandler(Button.ClickEvent, new RoutedEventHandler(GetHandledToo), true);
}


.NET Framework

Compatible con: 4, 3.5, 3.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft