RoutedEventArgs.OriginalSource Propiedad

Definición

Obtiene una referencia al objeto que generó el evento. Suele ser una parte de plantilla de un control en lugar de un elemento declarado en la interfaz de usuario de la aplicación.

public:
 property Platform::Object ^ OriginalSource { Platform::Object ^ get(); };
IInspectable OriginalSource();
public object OriginalSource { get; }
var object = routedEventArgs.originalSource;
Public ReadOnly Property OriginalSource As Object

Valor de propiedad

Object

Platform::Object

IInspectable

El objeto que ha generado el evento.

Comentarios

Cuando un evento enrutado propaga una ruta de evento, el remitente ya no es el mismo objeto que el objeto de generación de eventos. En vez de eso, sender es el objeto donde se adjunta el controlador que se está invocando.

En algunos casos, sender ya no será el objeto que te interesa, sino que querrás obtener otro tipo de información como, por ejemplo, sobre cuál de los posibles objetos secundarios se encontraba el puntero al desencadenarse un evento de puntero o qué objeto de una interfaz de usuario más amplia tenía el foco cuando un usuario presionó una tecla. En estos casos, puedes usar el valor de la propiedad OriginalSource. En todos los puntos de la ruta, OriginalSource notifica el objeto original que generó el evento y no el objeto al que se adjuntó el controlador. Sin embargo, para los eventos de entrada UIElement, ese objeto original suele ser uno que no es inmediatamente visible en el XAML de definición de la interfaz de usuario de la página. En cambio, podría ser una parte con plantilla de un control. Por ejemplo, si el usuario mantiene el puntero sobre el borde de una clase Button, para la mayoría de los eventos de puntero la propiedad OriginalSource forma parte de la plantilla Border de la propiedad Template, no de la misma clase Button. Por lo tanto, no siempre puedes confiar en OriginalSource que represente un objeto que hayas declarado específicamente en las definiciones de interfaz de usuario de nivel de página XAML.

Sugerencia

La propagación de eventos de entrada es especialmente útil si va a crear un control con plantilla. En todos los controles que tienen una plantilla, su consumidor puede aplicar una nueva plantilla. Un consumidor que intenta recrear una plantilla de trabajo podría eliminar por accidente cierto código de control de eventos declarado en la plantilla predeterminada. Aún puedes proporcionar código de control de eventos en el nivel del control, adjuntando controladores como parte de la invalidación OnApplyTemplate en la definición de la clase. A continuación, puedes capturar los eventos de entrada que se propagan en la raíz del control durante la creación de instancias.

Se aplica a

Consulte también