gpt4 book ai didi

WPF 窗口位置更改结束

转载 作者:行者123 更新时间:2023-12-04 13:55:00 25 4
gpt4 key购买 nike

我有一个 WPF 窗口,我想确定用户何时完成在桌面上移动窗口。我连接到 LocationChanged 事件,这很好,但我不知道如何确定用户何时停止移动窗口(通过释放鼠标左键)。

没有事件可以帮助我确定这一点,例如 LocationChangedEnded 事件。我尝试连接到 MouseLeftButtonUp,但该事件从未被触发。

有人有什么想法吗?

最佳答案

两种可能的方法是:

  • 您真的不知道鼠标按钮何时被抬起。相反,您等待窗口停止发送这些移动事件。设置一个短暂的计时器,每次收到窗口移动事件时都会开始计时。如果计时器已经开启,请重置计时器。当您收到计时器事件时,例如几百毫秒后,您可以假设用户停止移动窗口。即使使用高分辨率鼠标,当按住鼠标左键并试图保持静止时,抖动也会继续发送移动事件。记录了这种方法 here .
  • 尝试从窗口的非客户区捕获鼠标通知。您可以设置 window message hook捕获窗口消息。一旦看到第一个窗口移动事件,钩子(Hook)就可以开始寻找 WM_NCLBUTTONUP 事件。这种方法避免了计时器和猜测。但是,它对 Windows 允许用户定位窗口的方式做出了假设,并且在某些情况下可能会失败,例如如果用户仅使用键盘移动用户(Alt+Space、M、箭头键)。
  • 关于WPF 窗口位置更改结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1085383/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com