我正在开发一个继承自WPF
我已经让很多代码能正常工作,但我需要知道用户何时开始拖动窗口以及何时停止,因为窗口的行为将有所不同。默认的WPF处理方式不太对,所以我实现了自己的窗口处理过程,并使用一个
在没有非客户端区域的工作应用程序中,我已经成功使其工作。在这种情况下,有一个
但是现在我正在开发通用类,该类将不使用
在这种情况下,我将如何检测用户何时拖动窗口以及何时停止?
Window
类的应用工具栏窗口,名为AppBarWindow
。我已经找到了一些WinForms实现,但没有WPF实现。我已经让很多代码能正常工作,但我需要知道用户何时开始拖动窗口以及何时停止,因为窗口的行为将有所不同。默认的WPF处理方式不太对,所以我实现了自己的窗口处理过程,并使用一个
HwndSource
对象进行安装。在没有非客户端区域的工作应用程序中,我已经成功使其工作。在这种情况下,有一个
LeftMouseButtonDown
事件处理程序,它将标志设置为true,然后调用DragMove
方法来拖动窗口。当该方法返回时,我将标志设置为false。一切都很顺利。但是现在我正在开发通用类,该类将不使用
DragMove
方法。我可以为窗口添加另一个LeftMouseButtonDown
处理程序,但我认为如果鼠标位于非客户端区域,则不会调用该处理程序。在这种情况下,我将如何检测用户何时拖动窗口以及何时停止?
Window.LocationChanged
处理来得太晚了。我需要在WPF收到消息之前进行处理。 - Tony Vitabile