UIElement.MouseLeftButtonDown Событие

Определение

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

public:
 virtual event System::Windows::Input::MouseButtonEventHandler ^ MouseLeftButtonDown;
public event System.Windows.Input.MouseButtonEventHandler MouseLeftButtonDown;
member this.MouseLeftButtonDown : System.Windows.Input.MouseButtonEventHandler 
Public Custom Event MouseLeftButtonDown As MouseButtonEventHandler 

Тип события

MouseButtonEventHandler

Реализации

Комментарии

Несмотря на то, что перенаправленное событие кажется следовать направленному маршруту через дерево элементов, оно фактически является прямым перенаправленным событием, которое вызывается и передается по дереву элементов каждым из них UIElement .

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

Данные события этого события предоставляют данные о событии базового Mouse.MouseDown события. Если это событие помечено как обработанное в маршруте события, события, связанные с кнопкой мыши, по-прежнему вызываются. Однако обработчики событий, связанных с кнопками мыши, должны быть добавлены путем явного вызова AddHandler с параметром для обработки событий, которые уже помечены как обработанные, для того, чтобы они были прослушивателями события. Если пометить как MouseLeftButtonDown обработанный, то вы, по сути, помечаем Mouse.MouseDown обработку для всех последующих прослушивателей в маршруте и на всех связанных событиях. Это может включать события, созданные обработчиком класса, такие как MouseDoubleClick .

По сути, подумайте об этом событии (и других событиях кнопки мыши UIElement ) в качестве службы мыши (с определением службы, предоставленным Mouse классом). Это событие добавляет ненужное для проверки состояния кнопки мыши (слева направо, вверх-вниз) исходных событий мыши в данных события. Для более сложных сценариев, таких как проверка состояния нестандартных кнопок, может потребоваться использовать API-интерфейсы в Mouse классе, а не в UIElement .

Важно!

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

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

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

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

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

Поле идентификатора MouseLeftButtonDownEvent
Стратегия маршрутизации Прямой доступ
Делегат MouseButtonEventHandler
  • Переопределение OnMouseLeftButtonDown для реализации обработки класса для этого события в производных классах.

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

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