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


UIElement3D.AddHandler Метод

Определение

Добавляет обработчик перенаправленного события для указанного перенаправленного события, помещая этот обработчик в коллекцию обработчиков текущего элемента.

Перегрузки

AddHandler(RoutedEvent, Delegate)

Добавляет обработчик перенаправленного события для указанного перенаправленного события, помещая этот обработчик в коллекцию обработчиков текущего элемента.

AddHandler(RoutedEvent, Delegate, Boolean)

Добавляет обработчик перенаправленного события для указанного перенаправленного события, помещая этот обработчик в коллекцию обработчиков текущего элемента. Укажите handledEventsToo как true, чтобы предоставленный обработчик вызывался для перенаправленного события, которое уже было отмечено как обработанное другим элементом на маршруте события.

AddHandler(RoutedEvent, Delegate)

Добавляет обработчик перенаправленного события для указанного перенаправленного события, помещая этот обработчик в коллекцию обработчиков текущего элемента.

public:
 virtual void AddHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler);
public void AddHandler (System.Windows.RoutedEvent routedEvent, Delegate handler);
abstract member AddHandler : System.Windows.RoutedEvent * Delegate -> unit
override this.AddHandler : System.Windows.RoutedEvent * Delegate -> unit
Public Sub AddHandler (routedEvent As RoutedEvent, handler As Delegate)

Параметры

routedEvent
RoutedEvent

Идентификатор маршрутизируемого события для обработки.

handler
Delegate

Ссылка на реализацию обработчика.

Реализации

Комментарии

Вы можете добавить один и тот же обработчик для одного и того же события несколько раз, не вызывая исключения. Однако обработчик фактически вызывается несколько раз при обработке события. Поэтому подумайте, как это поведение может иметь побочные эффекты, которые следует учитывать в реализации обработчика.

Обычно этот метод используется для предоставления реализации метода доступа "add" для шаблона доступа к событиям Microsoft .NET настраиваемого перенаправленного события.

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

AddHandler(RoutedEvent, Delegate, Boolean)

Добавляет обработчик перенаправленного события для указанного перенаправленного события, помещая этот обработчик в коллекцию обработчиков текущего элемента. Укажите handledEventsToo как true, чтобы предоставленный обработчик вызывался для перенаправленного события, которое уже было отмечено как обработанное другим элементом на маршруте события.

public:
 void AddHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler, bool handledEventsToo);
public void AddHandler (System.Windows.RoutedEvent routedEvent, Delegate handler, bool handledEventsToo);
member this.AddHandler : System.Windows.RoutedEvent * Delegate * bool -> unit
Public Sub AddHandler (routedEvent As RoutedEvent, handler As Delegate, handledEventsToo As Boolean)

Параметры

routedEvent
RoutedEvent

Идентификатор маршрутизируемого события для обработки.

handler
Delegate

Ссылка на реализацию обработчика.

handledEventsToo
Boolean

true для регистрации обработчика, чтобы он вызывался даже в том случае, если перенаправленное событие помечено как обработанное в его данных события. false для регистрации обработчика с условием по умолчанию, что он не будет вызываться, если перенаправленное событие уже помечено как обработанное.

Значение по умолчанию — false.

Не следует постоянно прибегать к повторной обработке перенаправленного события.

Комментарии

Практическая обработка низкоуровневых входных событий является сложной задачей. Многие элементы управления реализуют поведение, когда определенное событие помечается как обработанное и заменяется другим более интуитивно понятным событием. Как правило, элемент управления помечает событие входных данных платформы как обработанное только в том случае, если для этого есть какое-то намерение. В некоторых сценариях эти намерения могут быть не теми, которые требуются для конкретной обработки входного события. Именно для этих сценариев регистрируются обработчики в handledEventsToo соответствующем true виде. Но вы не должны делать это обычно. Вызов обработчиков в ответ на все события, даже если они обработаны, усложнит логику обработки событий приложения. Если логика обработчика является существенной, производительность может снизиться. Следует зарезервировать использование присоединения обработчиков для уже обработанных событий в ситуациях, когда в процессе разработки вы уже обнаружили, что некоторые элементы управления обрабатывают события, которые вы по-прежнему хотите обрабатывать с помощью логики приложения.

Еще один способ избежать поведения обработки класса для определенных сочетаний элементов управления событиями заключается в использовании альтернативы предварительного просмотра этого события. Например, если MouseLeftButtonDown помечается обработано обработкой класса, можно добавить обработчики для PreviewMouseLeftButtonDown .

Вы можете добавить один и тот же обработчик для одного и того же события несколько раз, не вызывая исключения. Однако обработчик фактически вызывается несколько раз при обработке события. Поэтому подумайте, как это поведение может иметь побочные эффекты, которые следует учитывать в реализации обработчика.

Обычно этот метод используется для предоставления реализации метода доступа "add" для шаблона доступа к событиям Microsoft .NET настраиваемого перенаправленного события.

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