Mouse.MouseDown Присоединенное событие

Определение

Происходит, когда пользователь отпускает любую кнопку мыши.

see AddMouseDownHandler, and RemoveMouseDownHandler
see AddMouseDownHandler, and RemoveMouseDownHandler
see AddMouseDownHandler, and RemoveMouseDownHandler

Комментарии

Чтобы определить, какая кнопка мыши была подавлена, проверка ChangedButton свойство в переданном MouseButtonEventArgs обработчику.

Это присоединенное событие. WPF реализует присоединенные события в виде перенаправленных событий. Присоединенные события по сути являются концепцией языка XAML для ссылок на события, которые могут обрабатываться в объектах, которые не определяют это событие. WpF расширяет возможности, также позволяя событию проходить по маршруту. Присоединенные события не имеют синтаксиса прямой обработки в коде; Для присоединения обработчиков для перенаправленного события в коде используется назначенный метод Add*Handler. Дополнительные сведения см. в разделе Общие сведения о присоединенных событиях.

Платформа Windows Presentation Foundation (WPF) основана на этом присоединенном событии, отображая его как два разных события среды CLR в UIElement и ContentElement: MouseLeftButtonDown и MouseRightButtonDown. Эти реализации обрабатывают базовое MouseDown событие и считывают аргументы события, чтобы определить, была ли задействована левая или правая кнопка мыши. Для мыши с тремя кнопками центральная кнопка не поддерживает события на уровне платформы. Следует использовать MouseDown событие и проверка MiddleButton состояние в аргументах события.

Важно!

Некоторые производные ContentElement классы, имеющие поведение, подобное управлению, например , Hyperlinkмогут иметь присущую обработку классов для событий кнопки мыши. Событие вниз левой кнопки мыши является наиболее вероятным событием для обработки класса в элементе управления. Обработка класса часто помечает событие базового Mouse класса как обработанное. После того как событие помечено как обработанное, другие обработчики экземпляров, присоединенные к данному элементу, обычно не вызываются. Любые другие обработчики классов или экземпляров, присоединенные к элементам в восходящем направлении к корню в дереве пользовательского интерфейса, также обычно не вызываются.

Вы можете устранить проблему, описанную в предыдущем важном примечании, и по-прежнему получать MouseDown события для событий нажатия левой кнопки мыши в производном классе, который имеет обработку класса, с помощью любого из следующих решений:

  • Присоединение PreviewMouseDown обработчиков для события, которое не помечается как обрабатываемое элементами управления. Обратите внимание, что так как это событие является предварительным просмотром, маршрут начинается в корне и туннелируется до элемента управления .

  • Зарегистрируйте обработчик в элементе управления процедурно, вызвав AddHandler и выбрав параметр сигнатуры, который позволяет обработчикам прослушивать события, даже если они уже помечены как обработанные в перенаправленных данных событий.

Для перенаправленных событий, связанных с мышью, будьте осторожны с тем, как и когда вы помечаете их обработку. Трудность при принятии соответствующих решений о том, следует ли также информировать родительские элементы о том или ином действии мыши, на самом деле заключается в том, что платформа WPF выбрала модель отображения базового события маршрутизации мыши в качестве событий CLR по маршруту. Аналогичные проблемы существуют и с событиями туннелирования мыши. Следует ли обрабатывать событие и не обрабатывать его дальнейшими дочерними элементами по отношению к источнику, и как это повлияет на создание элемента управления, в котором элементы создания могут ожидать поведения мыши?

Сведения о маршрутизируемом событии

Поле идентификатора MouseDownEvent
Стратегия маршрутизации Восходящей
Делегат MouseButtonEventHandler
  • Соответствующее событие туннелирования — PreviewMouseDown.

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