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


ContentElement.OnPreviewMouseDown(MouseButtonEventArgs) Метод

Определение

Вызывается, когда необработанное PreviewMouseDown присоединенное перенаправленное событие достигает элемента в его маршруте, производном от этого класса. Реализуйте этот метод, чтобы добавить обработку классов для этого события.

protected public:
 virtual void OnPreviewMouseDown(System::Windows::Input::MouseButtonEventArgs ^ e);
protected internal virtual void OnPreviewMouseDown (System.Windows.Input.MouseButtonEventArgs e);
abstract member OnPreviewMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
override this.OnPreviewMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
Protected Friend Overridable Sub OnPreviewMouseDown (e As MouseButtonEventArgs)

Параметры

e
MouseButtonEventArgs

MouseButtonEventArgs, содержащий данные события. Данные события сообщают о том, что нажата одна или несколько кнопок мыши.

Комментарии

Действия кнопки мыши также обрабатываются выделенным диспетчером входных данных. Другие функции программирования, использующие действия кнопки мыши, такие как входные и командные привязки, могут вызывать обработчики для действия, прежде чем он предоставляется в качестве общего действия кнопки мыши. Если эти функции системы ввода помечают событие Mouse.PreviewMouseDown как обработанное, OnPreviewMouseDown не вызывается.

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

Если пометить это событие как обработанное в обработке классов, вложенные элементы по-прежнему вызываются; однако они передают обработанное состояние в данных события. Если событие обрабатывается в обработке классов, обработчики экземпляров для дочерних элементов не вызываются, если только явно не использовать AddHandler(RoutedEvent, Delegate, Boolean) с handledEventsTootrue для присоединения обработчиков. Обработчики классов также не вызываются, если только эти обработчики классов не были зарегистрированы сигнатурой RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) с handledEventsTootrue. Обрабатывая OnPreviewMouseDown, вы подразумеваете, что обработка класса учитывается для всех возможных действий мыши вниз. Это поведение может быть нежелательным; Поэтому используйте осторожность при использовании этого виртуального метода, чтобы пометить события как обработанные.

Каждый из прямых событий, относящихся к кнопке, также имеет виртуальный метод On*; рассмотрите, может ли переопределение этих обработчиков классов, относящихся к кнопке, было бы более подходящим.

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

Цель этого метода аналогична методам среды CLR: этот метод предоставляет средства для обработки события сопоставления из производных классов путем создания обработчика класса вместо обработчика экземпляра. В этом случае соответствующее событие является маршрутивным событием. Шаблон реализации методов On* отличается для перенаправленных событий, так как перенаправленное событие может быть вызвано дочерним элементом, который не обязательно является элементом, который будет вызывать обработчики. Таким образом, реализация должна проверить исходные свойства данных события. В большинстве случаев это событие не должно пытаться повторно выполнить.

Переопределяя этот метод или регистрируя обработчики классов с помощью RegisterClassHandler, производные классы ContentElement могут вызывать методы обработчика частных классов при получении события по маршруту событий. Один из сценариев, когда обработка классов подходит для управления данными о событиях и пометки перенаправленного события как обработанного. Другой сценарий, предназначенный специально для событий предварительной версии, заключается в том, чтобы пометить их, чтобы соответствующие обработчики класса не вызывались.

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

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