UIElement.MouseLeftButtonDown Событие

Определение

Происходит при нажатии левой кнопки мыши в тот момент, когда указатель мыши находится над данным элементом.Occurs when the left mouse button is pressed while the mouse pointer is over this element.

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 

Реализации

Комментарии

Несмотря на то, что перенаправленное событие кажется следовать направленному маршруту через дерево элементов, оно фактически является прямым перенаправленным событием, которое вызывается и передается по дереву элементов каждым UIElement.Although this routed event seems to follow a bubbling route through an element tree, it actually is a direct routed event that is raised and reraised along the element tree by each UIElement.

Это событие является одним из нескольких связанных событий, которые сообщают о характере для кнопки мыши базового события Mouse.MouseDown, которое является вложенным событием, которое обрабатывается каждым элементом в маршруте события.This event is one of several related events that report the mouse-button specifics of an underlying Mouse.MouseDown event, which is an attached event that is processed by each element along an event route.

Данные события этого события предоставляют данные о событии базового Mouse.MouseDown события.The event data of this event exposes the event data of the underlying Mouse.MouseDown event. Если это событие помечено как обработанное в маршруте события, события, связанные с кнопкой мыши, по-прежнему вызываются. Однако обработчики событий, связанных с кнопками мыши, должны добавляться путем явного вызова AddHandlerс параметром для обработки событий, которые уже помечены как обработанные, для того, чтобы они были прослушивателями события.If that event is marked as handled along the event route, the mouse-button specific events are still raised; however, handlers of the mouse-button specific events must be added by explicitly calling AddHandler, with the option to handle events that are already marked as handled, in order to be listeners to the event. Если пометить MouseLeftButtonDown как обработанные, то, по сути, помечается Mouse.MouseDown обрабатываться для всех последующих прослушивателей в маршруте и для всех связанных событий.If you mark MouseLeftButtonDown handled, you are essentially marking Mouse.MouseDown handled for all further listeners along the route, and on all related events. Это может быть событие, созданное обработчиком класса, например MouseDoubleClick.This possibly includes class-handler generated events such as MouseDoubleClick.

Концептуально Представьте это событие (а также другие события кнопки мыши в UIElement) как "служба" (с определением службы, предоставленным классом Mouse).Conceptually, think of this event (and other mouse-button events on UIElement) to be a mouse "service" (with the service definition provided by the Mouse class). Это событие добавляет ненужное для проверки состояния кнопки мыши (слева направо, вверх-вниз) исходных событий мыши в данных события.The event adds the convenience of not needing to check the mouse button states (left-right, up-down) of the original mouse events in the event data. Для более сложных сценариев, таких как проверка состояния нестандартных кнопок, может потребоваться использовать API-интерфейсы в Mouse классе, а не на UIElement.For more advanced scenarios, such as checking for states of non-standard buttons, you might need to use the APIs on the Mouse class rather than those on UIElement.

Важно!

Некоторые классы элементов управления могут иметь встроенную обработку классов для событий кнопок мыши.Some control classes might have inherent class handling for mouse button events. Событие нажатия левой кнопки мыши является наиболее вероятным событием для обработки класса в элементе управления.The left mouse button down event is the most likely event to have class handling in a control. Обработка класса часто помечает базовое событие Mouse класса как обработанное.The class handling often marks the underlying Mouse class event as handled. После того как событие помечено как обработанное, другие обработчики экземпляров, присоединенные к этому элементу, обычно не вызываются.Once the event is marked handled, other instance handlers that are attached to that element are not ordinarily raised. Другие обработчики классов или экземпляров, присоединенные к элементам в направлении восходящей маршрутизации к корню в дереве пользовательского интерфейса, также не вызываются.Any other class or instance handlers that are attached to elements in the bubbling direction towards the root in the UI tree are also not ordinarily raised.

Проблему, описанную выше, можно устранить, выполнив события MouseLeftButtonDown для событий левой кнопки мыши в производном классе, который обрабатывает классы с помощью любого из следующих решений:You can resolve the issue that is outlined in the preceding Important and still receive MouseLeftButtonDown events for left mouse button down events on a derived class that has class handling by using either of these solutions:

  • Присоединение обработчиков для события PreviewMouseDown, которое не помечено как обработанное элементами управления.Attach handlers for the PreviewMouseDown event, which is not marked as handled by the controls. Обратите внимание, что поскольку это событие предварительного просмотра, маршрут начинается с корневого каталога и подключается к элементу управления.Notice that because this is a preview event, the route starts at the root and tunnels down to the control.

  • Зарегистрируйте обработчик в элементе управления процедурно, вызвав AddHandler и выбрав параметр Signature, который позволяет обработчикам прослушивать события, даже если они уже помечены как обработанные в данных перенаправленного события.Register a handler on the control procedurally by calling AddHandler and choosing the signature option that enables handlers to listen for events even if they are already marked as handled in the routed event data.

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

Поле идентификатораIdentifier field MouseLeftButtonDownEvent
Стратегия маршрутизацииRouting strategy DirectDirect
делегатDelegate MouseButtonEventHandler
  • Переопределите OnMouseLeftButtonDown, чтобы реализовать обработку класса для этого события в производных классах.Override OnMouseLeftButtonDown to implement class handling for this event in derived classes.

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

Дополнительно