Share via


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 que se declaró 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, sender ya no es el mismo objeto que el objeto que genera eventos. En su lugar, sender es el objeto donde se adjunta el controlador al que se invoca.

En algunos casos, no es interesante y, en su lugar, sender está interesado en información como cuál de los posibles objetos secundarios el puntero se termina cuando se desencadena un evento de puntero o qué objeto de una interfaz de usuario más grande mantiene el foco cuando un usuario presiona una tecla de teclado. En estos casos, puede usar el valor de la OriginalSource propiedad . En todos los puntos de la ruta, OriginalSource informa del objeto original que desencadenó el evento, en lugar del objeto donde está asociado 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 un botón, para la mayoría de los eventos de puntero, OriginalSource es una parte de plantilla de borde en la plantilla, no el propio botón . Por lo tanto, no siempre puedes confiar en OriginalSource representar 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