Поделиться через


RoutedEventArgs.OriginalSource Свойство

Определение

Возвращает ссылку на объект, вызвав которому событие. Часто это шаблонная часть элемента управления, а не элемент, объявленный в пользовательском интерфейсе приложения.

public:
 property Platform::Object ^ OriginalSource { Platform::Object ^ get(); };
IInspectable OriginalSource();
public object OriginalSource { get; }
var object = routedEventArgs.originalSource;
Public ReadOnly Property OriginalSource As Object

Значение свойства

Object

Platform::Object

IInspectable

Объект, вызвавший событие.

Комментарии

Когда перенаправленное событие перенаправилось вверх по маршруту события, больше не является тем же объектом, sender что и объект, вызывающий события. Вместо этого — это объект, sender к которому присоединяется вызываемый обработчик.

В некоторых случаях sender это не интересно, и вместо этого вас интересуют такие сведения, как, например, какие из возможных дочерних объектов указатель переключится при срабатывании события указателя или какой объект в более крупном пользовательском интерфейсе удерживал фокус, когда пользователь нажал клавишу клавиатуры. В таких случаях можно использовать значение OriginalSource свойства . Во всех точках маршрута сообщает об исходном объекте, который запустил событие, а не о объекте, OriginalSource к которому прикреплен обработчик. Но для событий ввода UIElement этот первоначальный объект часто оказывается объектом, который не виден на уровне страницы определения пользовательского интерфейса XAML. Такой исходный объект может являться шаблонной частью элемента управления. Например, если пользователь навещает указатель на самый край кнопки, для большинства событий OriginalSource указателя элемент является частью шаблона Граница в шаблоне, а не самой кнопкой . Поэтому вы не всегда можете полагаться на OriginalSource представление объекта, который вы специально объявили в определениях пользовательского интерфейса на уровне страниц XAML.

Совет

Восходящая трансляция входных событий особенно полезна при создании шаблонного элемента управления. Любому элементу управления, использующему шаблон, пользователь может назначить новый шаблон. При попытке повторно создать рабочий шаблон пользователь может непреднамеренно исключить некоторые обработки событий, объявленные в шаблоне по умолчанию. Тем не менее можно обеспечить обработку событий на уровне элемента управления, прикрепив обработчики в процессе переопределения OnApplyTemplate в определении класса. Далее можно перехватывать события ввода, следующие вверх по маршруту к корню элемента управления, в момент создания экземпляра.

Применяется к

См. также раздел