Mouse.PreviewMouseDown 附加事件


当按下任何鼠标按钮时发生。Occurs when any mouse button is depressed.

see AddPreviewMouseDownHandler, and RemovePreviewMouseDownHandler
see AddPreviewMouseDownHandler, and RemovePreviewMouseDownHandler
see AddPreviewMouseDownHandler, and RemovePreviewMouseDownHandler


通过检查事件的参数来确定按下的鼠标按钮。Which mouse button was depressed is determined by checking the arguments of the event. 这是一个附加事件 (使用隧道路由策略) ,该策略旨在通过现有用户界面 (UI) 接受输入的元素引用的附加事件语法来引用。This is an attached event (using tunneling routing strategy) that is intended through attached event syntax to be referenced by existing user interface (UI) elements that take input.

这是一个附加事件。This is an attached event. WPF 将附加事件作为路由事件实现。WPF implements attached events as routed events. 附加事件本质上是一个 XAML 语言概念,用于引用可以在未定义该事件的对象上处理的事件,WPF 通过同时启用该事件来遍历路由。Attached events are fundamentally a XAML language concept for referencing events that can be handled on objects that do not define that event, which WPF 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.

Windows Presentation Foundation (WPF) 框架通过将其作为两个不同的公共语言运行时在上 (CLR) 事件,在此附加事件上生成 UIElementPreviewMouseLeftButtonDownPreviewMouseRightButtonDownThe Windows Presentation Foundation (WPF) framework builds on this attached event by surfacing it as two different common language runtime (CLR) events on UIElement: PreviewMouseLeftButtonDown and PreviewMouseRightButtonDown. 这些实现处理基础 PreviewMouseDown 事件并读取事件的参数,以确定是否涉及鼠标左键或右键。These implementations handle the underlying PreviewMouseDown event and read the arguments of the event to determine whether the left or right mouse button was involved. 对于三按钮,中间按钮没有框架级事件支持,您应该使用 PreviewMouseDown 事件并检查事件参数中的中间按钮条件。For three-button, there is no framework-level event support for the center button, and you should use the PreviewMouseDown event and check for the center button condition in the event arguments.

对于与鼠标相关的路由事件,请注意如何或何时将其标记为已处理。For routed events that relate to the mouse, be careful about how or when you mark them handled. 处理根附近的事件,并通过源进一步对源进行处理可能不适用于复合控件,其中的组合项可能具有预期的鼠标行为。Handling the event near the root and handling it by a child further toward the source may not be appropriate for composited controls, where the compositing pieces might have expected mouse behaviors. 如果对其他元素是否还应知道有关任何给定鼠标操作的相关选择,这一困难非常困难,因为 WPF framework 选择的模型的基础 Mouse 路由事件会在路由时呈现为 CLR 事件。The difficulty in making the appropriate choices about whether other elements should also be informed about any given mouse action is in fact why the WPF framework chose the model of having the underlying Mouse routed event be surfaced as CLR events along the route.

路由事件信息Routed Event Information

标识符字段Identifier field PreviewMouseDownEvent
路由策略Routing strategy 隧道Tunneling
委托Delegate MouseButtonEventHandler