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 gera uma rota de evento, sender
não é mais o mesmo objeto que o objeto de acionamento de eventos. Em vez disso, sender
é o objeto em que o manipulador que está sendo invocado está anexado.
Em alguns casos, sender
não é interessante, e você está interessado em informações como quais dos possíveis objetos filho o ponteiro acabou quando um evento de ponteiro foi disparado ou qual objeto em uma interface do usuário maior manteve o foco quando um usuário pressionava uma tecla de teclado. Para esses casos, você pode usar o valor da OriginalSource
propriedade . Em todos os pontos da rota, OriginalSource
relata o objeto original que disparou o evento, em vez do objeto em que o manipulador está anexado. 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 passar o ponteiro sobre a borda de um Botão, para a maioria dos eventos de ponteiro o OriginalSource
será uma parte de modelo borda no Modelo, não o botão em si. Portanto, nem sempre você pode contar OriginalSource
com a representação de 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 será especialmente útil se você estiver criando um controle de 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.