RoutedEventArgs.OriginalSource Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém uma referência ao objeto que gerou o evento. Isso geralmente é uma parte de modelo de um controle em vez de um elemento que foi declarado na interface do usuário do aplicativo.
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 da propriedade
O objeto que gerencie o evento.
Comentários
Quando um evento roteado aumenta uma rota de evento, o remetente não é mais o mesmo objeto que o objeto de acionamento de eventos. Em vez disso, sender é o objeto no qual o manipulador que está sendo invocado está conectado.
Em alguns casos, sender não é o objeto de interesse e, em vez disso, você está interessado em informações como, por exemplo, em quais dos possíveis objetos filho o ponteiro está focalizado quando um evento de ponteiro é disparado ou qual objeto em uma interface do usuário maior tinha o foco quando um usuário pressionou uma tecla do teclado. Nesses casos, você pode usar o valor da propriedade OriginalSource. Em todos os pontos da rota, a OriginalSource relata o objeto original que acionou o evento, e não o local onde o manipulador foi conectado. Contudo, para eventos de entrada de UIElement, esse objeto original costuma ser um objeto não imediatamente visível na XAML de definição de interface do usuário em nível de página. Em vez disso, o objeto original pode ser uma parte modelo de um controle. Por exemplo, se o usuário passa com o ponteiro sobre a borda de um Button, para a maioria dos eventos de ponteiro, OriginalSource é uma parte modelo Border em Template, e não o Button propriamente dito. Portanto, nem sempre você pode contar com OriginalSource representando um objeto que você declarou especificamente em suas definições de interface do usuário no nível da página XAML.
Dica
A propagação de eventos de entrada é especialmente útil se você estiver criando um controle com modelo. Qualquer controle que tenha um modelo pode ter um novo modelo aplicado pelo seu consumidor. O consumidor que está tentando recriar um modelo de trabalho pode eliminar inadvertidamente uma parte da manipulação de eventos declarada no modelo padrão. Você ainda pode fornecer manipulação de eventos em nível de controle anexando manipuladores como parte da substituição de OnApplyTemplate na definição de classe. Em seguida, pode apanhar os eventos de entrada propagados rumo à raiz do controle na instanciação.