UIElement.OnMouseDown(MouseButtonEventArgs) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Вызывается, когда необработанное вложенное событие MouseDown встречает на своем маршруте элемент, производный от этого класса. Реализуйте этот метод, чтобы добавить для класса обработчик данного события.
protected:
virtual void OnMouseDown(System::Windows::Input::MouseButtonEventArgs ^ e);
protected virtual void OnMouseDown (System.Windows.Input.MouseButtonEventArgs e);
abstract member OnMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
override this.OnMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
Protected Overridable Sub OnMouseDown (e As MouseButtonEventArgs)
Параметры
Объект класса MouseButtonEventArgs, содержащий данные о событии. Данные этого события содержат сведения о нажатой кнопке мыши и состоянии обработки.
Комментарии
Действия кнопки мыши также обрабатываются выделенным диспетчером ввода. Другие функции программирования, использующие действия кнопки мыши, такие как входные и командные привязки, могут вызывать обработчики для действия, прежде чем оно будет представлено в качестве общего действия кнопки мыши. Если эти функции системы ввода помечают Mouse.MouseDown событие как обработанное, OnMouseDown не вызывается.
Если вы используете этот обработчик класса, чтобы пометить событие как обработанное, вы можете повлиять на следующие события: MouseLeftButtonDown и MouseRightButtonDown. Любое из этих событий может возникать в принимающем элементе при Mouse.MouseDown получении.
Если вы помечаете это событие как обработанное в обработке класса, дочерние события по-прежнему возникают; однако они передают обработанное состояние в данных события. Если событие обрабатывается в обработке класса, обработчики экземпляров для вложенных событий не вызываются, если явно не использовать AddHandler(RoutedEvent, Delegate, Boolean) с handledEventsToo
true
для присоединения обработчиков. Обработчики классов также не вызываются, если эти обработчики классов не были зарегистрированы с помощью сигнатуры RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) с handledEventsToo
true
помощью . При обработке OnMouseDownподразумевается, что обработка класса учитывает все возможные действия нажатия кнопки мыши. Такое поведение может быть нежелательным; Поэтому соблюдайте осторожность при использовании этого виртуального метода для пометки событий как обработанных.
Каждое из прямых событий, относящихся к кнопке, также имеет виртуальный метод On*; определите, может ли быть более подходящим переопределение этих обработчиков класса, зависящих от кнопки.
Этот метод не имеет реализации по умолчанию. Так как промежуточный класс в наследовании может реализовать этот метод, рекомендуется вызвать базовую реализацию в реализации.
Назначение этого метода аналогично методу шаблона событий среды CLR On*: этот метод предоставляет средства для обработки события сопоставления из производных классов путем создания обработчика класса вместо обработчика экземпляра. В этом случае соответствующее событие является перенаправленным событием. Шаблон реализации методов On* отличается для перенаправленных событий, так как перенаправленное событие может быть вызвано дочерним элементом, который не обязательно является элементом, который будет вызывать обработчики. Поэтому реализация должна изучить исходные свойства данных события. В большинстве случаев не следует пытаться повторить событие.
Переопределяя этот метод или регистрируя обработчики классов в RegisterClassHandler, производные классы UIElement могут вызывать методы обработчика частных классов при получении события по маршруту события. Один из сценариев, в котором подходит обработка классов, заключается в управлении данными события и пометки перенаправленного события как обработанного.
Применяется к
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по