RoutedEventArgs.OriginalSource Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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.