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