UIElement.OnPreviewMouseDown(MouseButtonEventArgs) Метод

Определение

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

protected:
 virtual void OnPreviewMouseDown(System::Windows::Input::MouseButtonEventArgs ^ e);
protected 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 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*: этот метод предоставляет средства для обработки события сопоставления из производных классов путем создания обработчика класса вместо обработчика экземпляра. В этом случае событие сопоставления является перенаправленным событием. Шаблон реализации методов On* отличается для перенаправленных событий, так как перенаправленное событие может быть вызвано дочерним элементом, который не обязательно является элементом, который будет вызывать обработчики. Поэтому реализация должна изучить исходные свойства данных события. В большинстве случаев не следует пытаться повторить событие.

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

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

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