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
Значение свойства
Объект, вызвавший событие.
Комментарии
Когда перенаправленное событие перенаправилось вверх по маршруту события, больше не является тем же объектом, sender
что и объект, вызывающий события. Вместо этого — это объект, sender
к которому присоединяется вызываемый обработчик.
В некоторых случаях sender
это не интересно, и вместо этого вас интересуют такие сведения, как, например, какие из возможных дочерних объектов указатель переключится при срабатывании события указателя или какой объект в более крупном пользовательском интерфейсе удерживал фокус, когда пользователь нажал клавишу клавиатуры. В таких случаях можно использовать значение OriginalSource
свойства . Во всех точках маршрута сообщает об исходном объекте, который запустил событие, а не о объекте, OriginalSource
к которому прикреплен обработчик. Но для событий ввода UIElement этот первоначальный объект часто оказывается объектом, который не виден на уровне страницы определения пользовательского интерфейса XAML. Такой исходный объект может являться шаблонной частью элемента управления. Например, если пользователь навещает указатель на самый край кнопки, для большинства событий OriginalSource
указателя элемент является частью шаблона Граница в шаблоне, а не самой кнопкой . Поэтому вы не всегда можете полагаться на OriginalSource
представление объекта, который вы специально объявили в определениях пользовательского интерфейса на уровне страниц XAML.
Совет
Восходящая трансляция входных событий особенно полезна при создании шаблонного элемента управления. Любому элементу управления, использующему шаблон, пользователь может назначить новый шаблон. При попытке повторно создать рабочий шаблон пользователь может непреднамеренно исключить некоторые обработки событий, объявленные в шаблоне по умолчанию. Тем не менее можно обеспечить обработку событий на уровне элемента управления, прикрепив обработчики в процессе переопределения OnApplyTemplate в определении класса. Далее можно перехватывать события ввода, следующие вверх по маршруту к корню элемента управления, в момент создания экземпляра.