在WPF中"捕获鼠标"是什么意思?

Ecl*_*pse 69 wpf mouse events

System.Windows.UIElement有一个CaptureMouse()和配对ReleaseMouseCapture()方法.在这个WPF DragDrop示例中,他们在MouseDown上调用CaptureMouse并在MouseUp上释放它.MSDN中文档几乎没用 - "CaptureMouse - >捕获鼠标".

在尝试它之前,我认为它以某种方式将鼠标锁定在UIElement界限内,但是当我尝试它时显​​然不是这样.从试验开始,当鼠标在UIElement之外时似乎与响应事件有关,但不想成为一个货物狂热的程序员,我不想只使用它,因为这个例子,我想它是什么意思的权威描述.

Cam*_*and 77

从MSDN上捕获和取消捕获鼠标:

当对象捕获鼠标时,所有与鼠标相关的事件都被视为具有鼠标捕获的对象执行事件,即使鼠标指针位于另一个对象上也是如此.

捕获鼠标对于拖动非常有用,因为只有捕获控件才会接收鼠标事件直到释放.所有拖动代码都可以存在于一个控件中,而不是分布在多个控件上.

  • 捕获鼠标最重要的是**只捕获控制**接收鼠标事件. (15认同)

Alu*_*ord 12

当它捕获鼠标时,即使鼠标指针不在其边界区域内,控件也会接收鼠标事件.

通常,它用于:

  • 拖放
  • 按钮(当您将鼠标按下按钮并在释放按钮之前移动鼠标时处理鼠标向上)