我正在尝试确保我的WPF窗口在打开时保持在最前面。它作为一个设置了TopMost=true的弹出窗口,调用了win32 SetWindowPos到TOPMOST。当首次打开时,它会出现在桌面上运行的其他应用程序之上 - 无论是最大化还是非最大化。
如果用户激活或使用应用程序中的窗口,则我的窗口失去焦点并消失。
我想过操作其他应用程序窗口,将其设置为较低的z索引。如何找到应用程序窗口?如何遍历所有窗口?(即使这不是正确的方法,这个问题仍然存在)。
我将使用SetWindowPos、GetForegroundWindow、GetForegroundWindow、GetDesktopWindow等方法。
我怀疑只要用户单击其应用程序,它仍然会聚焦它,因此我正在走错路线。
目前,我的应用程序是一个黑盒子,我无法以另一种方式处理它,例如定期向我的应用程序发送消息以进行聚焦。
我还考虑过拥有一个长时间运行的后台线程,定期聚焦我的WPF弹出窗口,但需要监控资源和处理器。
此致敬礼。
如果用户激活或使用应用程序中的窗口,则我的窗口失去焦点并消失。
我想过操作其他应用程序窗口,将其设置为较低的z索引。如何找到应用程序窗口?如何遍历所有窗口?(即使这不是正确的方法,这个问题仍然存在)。
我将使用SetWindowPos、GetForegroundWindow、GetForegroundWindow、GetDesktopWindow等方法。
我怀疑只要用户单击其应用程序,它仍然会聚焦它,因此我正在走错路线。
目前,我的应用程序是一个黑盒子,我无法以另一种方式处理它,例如定期向我的应用程序发送消息以进行聚焦。
我还考虑过拥有一个长时间运行的后台线程,定期聚焦我的WPF弹出窗口,但需要监控资源和处理器。
此致敬礼。
TopMost=true
,但它并不总是保持在最上层? - Gabe