Idioma

RoutedEventArgs.OriginalSource Propriedade

Definição

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

Object

Platform::Object

IInspectable

O objeto que gerou o evento.

Comentários

Quando um evento roteado gera uma rota de evento, sender não é mais o mesmo objeto que o objeto de geração 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, em vez disso, 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 pressionou 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. No entanto, para eventos de entrada UIElement , esse objeto original geralmente é um objeto que não é imediatamente visível no XAML de definição de interface do usuário no nível da página. Em vez disso, esse objeto de origem original pode ser uma parte derivada de um modelo de um controle. Por exemplo, se o usuário focalizar o ponteiro sobre a borda de um Botão, para a maioria dos eventos de ponteiro, a OriginalSource parte de modelo de Borda será um modelo de borda no Modelo, não o botão em si. Portanto, nem sempre é possível contar com OriginalSource 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.

Tip

A propagação de eventos de entrada é especialmente útil se você estiver criando um controle modelo. Qualquer controle que tenha um modelo pode ter um novo modelo aplicado por seu consumidor. O consumidor que está tentando recriar um modelo de trabalho pode eliminar involuntariamente algum tratamento de evento declarado no modelo padrão. Você ainda pode fornecer tratamento de eventos no nível de controle anexando manipuladores como parte da substituição OnApplyTemplate na definição de classe. Em seguida, você pode capturar os eventos de entrada que se propagam até a raiz do controle durante a instanciação.

Aplica-se a

Confira também