我在 Windows 窗体中实现了类似于 DragMove 的功能,但边界设置为主屏幕边距的 10 个单位。
当切换到 WPF 时我发现这个线程 https://stackoverflow.com/questions/568012/wpf-window-drag-move-boundary有助于实现相同的结果。
但是,由于这是一个移动后事件,因此如果我的窗口被拖动到我设置的边界之外,它就会“跳”回来。我想避免这种效果,因为它看起来很糟糕。
有没有一种简单的方法可以避免窗口移动到给定区域之外而不使用LocationChanged
事件?我基本上想限制窗口的移动before它发生了。
这些使用 WPF 很难实现,因为它不像 WinForms 那样公开基本的 Win32 函数和事件。我有一个项目需要调整窗口大小,并且必须使用 PInvoke SetWindowPos 以正常方式执行此操作。
AddHook 可能会帮助你,但这仍然会很困难。看http://www.wpfmentor.com/2009/01/how-to-get-hwnd-and-hook-into-wndproc.html http://www.wpfmentor.com/2009/01/how-to-get-hwnd-and-hook-into-wndproc.html and http://msdn.microsoft.com/en-us/library/system.windows.interop.hwndsource.addhook.aspx http://msdn.microsoft.com/en-us/library/system.windows.interop.hwndsource.addhook.aspx了解更多信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)