Mouse.MouseDown Mouse.MouseDown Mouse.MouseDown Attached Event

Определение

Происходит, когда пользователь отпускает любую кнопку мыши.Occurs when any mouse button is depressed.

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

Комментарии

Чтобы определить, какая кнопка мыши была нажата, проверьте ChangedButton свойство MouseButtonEventArgs в переданном обработчике.To determine which mouse button was depressed, check the ChangedButton property in the MouseButtonEventArgs passed to the handler.

Это вложенное событие.This is an attached event. WPFWPFреализует присоединенные события как перенаправленные события.implements attached events as routed events. Присоединенные события — это фундаментальное XAMLXAML понятие языка для ссылок на события, которые могут обрабатываться для объектов, не определяющих это событие, которое WPFWPF расширяется путем включения события для прохода по маршруту.Attached events are fundamentally a XAMLXAML language concept for referencing events that can be handled on objects that do not define that event, which WPFWPF expands upon by also enabling the event to traverse a route. Вложенные события не имеют синтаксиса прямой обработки в коде; чтобы присоединить обработчики для перенаправленного события в коде, используйте назначенный метод обработчика Add *.Attached events do not have a direct handling syntax in code; to attach handlers for a routed event in code, you use a designated Add*Handler method. Дополнительные сведения см. в разделе Общие сведения о вложенных событиях.For details, see Attached Events Overview.

ContentElement UIElement среда CLRcommon language runtime (CLR) MouseRightButtonDown MouseLeftButtonDown Платформа строится на этом присоединенном событии, отображая его как два различных события в и: и. Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)The Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) framework builds on this attached event by surfacing it as two different среда CLRcommon language runtime (CLR) events on UIElement and ContentElement: MouseLeftButtonDown and MouseRightButtonDown. Эти реализации обрабатывали базовое MouseDown событие и считывают аргументы события, чтобы определить, была ли вовлечена левая или правая кнопка мыши.These implementations handle the underlying MouseDown event and read the arguments of the event to determine whether the left or right mouse button was involved. Для мыши с тремя кнопками для центральной кнопки не предусмотрена поддержка событий уровня инфраструктуры.For a three-button mouse, there is no framework-level event support for the center button. Следует использовать MouseDown событие и MiddleButton проверить состояние в аргументах события.You should use the MouseDown event and check the MiddleButton state in the event arguments.

Важно!

Несколько ContentElement производных классов с поведением, подобным управлению, Hyperlinkнапример, могут иметь внутреннюю обработку класса для событий кнопок мыши.A few ContentElement derived classes that have control-like behavior, for example, Hyperlink, 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.

Можно устранить проблему, описанную в предыдущем важном примечании, и по-прежнему получить MouseDown события для событий нажатия левой кнопки мыши в производном классе, который обрабатывает классы с помощью любого из следующих решений:You can resolve the issue that is outlined in the preceding Important note and still receive MouseDown 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.

Для перенаправленных событий, связанных с мышью, будьте внимательны в том, как или когда вы помечаете их как обработанные.For routed events that relate to the mouse, be careful about how or when you mark them handled. Сложность, связанная с тем, что родительские элементы должны быть также уведомлены о любом действии мыши, заключается в том, WPFWPF почему платформа выбрала модель, в которой перенаправленное событие мыши отображается как CLRCLR События по маршруту.The difficulty in making the appropriate choices about whether parent elements should also be informed about any given mouse action is in fact why the WPFWPF framework chose the model of having the underlying mouse routed event be surfaced as CLRCLR events along the route. Существуют аналогичные проблемы с туннелированием событий мыши.Similar issues exist with tunneling mouse events. Следует ли обрабатывать событие, не отменяя его обработку дальнейшими дочерними элементами в отношении источника и как это повлияет на композицию элемента управления, в котором компоненты компоновки могут ожидать поведений мыши?Should you handle the event and not have it be handled by further children toward the source, and how would that affect compositing a control where the compositing pieces might have expected mouse behaviors?

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

Поле идентификатораIdentifier field MouseDownEvent
Стратегия маршрутизацииRouting strategy Восходящей маршрутизацииBubbling
делегатDelegate MouseButtonEventHandler

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