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


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 : MouseLeftButtonDown иContentElementMouseRightButtonDown. Эти реализации обрабатывают базовое MouseDown событие и считывают аргументы события, чтобы определить, участвует ли левая или правая кнопка мыши. Для трех кнопки мыши нет поддержки событий уровня платформы для центральной кнопки. Следует использовать MouseDown событие и проверить MiddleButton состояние в аргументах события.

Это важно

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

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

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

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

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

Сведения о перенаправленных событиях

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

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