【发布时间】:2019-07-29 05:28:35
【问题描述】:
我不是要参加活动。我在问如何问(使用 C#,而不是 WinAPI)“窗口最小化了吗?”。
WindowState 不够好。当ShowInTaskbar="False" 时,Win+D 后将是Normal。在定时器中使用Debug.WriteLine(WindowState); 试试。
那么,是否有可靠的托管方式来检查窗口是否已最小化(即使ShowInTaskbar 是False)?
【问题讨论】:
-
如果你想知道窗口是否被最小化,这与“使用 Win+D”是一个非常不同的问题。 Win+D 的作用是调用资源管理器的“显示桌面”功能,以最小化所有 Windows。另外,也许还可以在桌面上设置输入焦点?您也可以通过右键单击任务栏来调用它。
-
@Christopher 我的意思是 Win+D,而不是 Window 上的最小化按钮,它将更改
WindowState,甚至引发 StateChanged 事件。 -
@ColinSmith 我需要在 WPF 应用程序中创建一个 Winforms 表单。并非不可能,但我会留下来看看是否有一些更简单的解决方案。谢谢。
-
这里有几个想法:social.msdn.microsoft.com/Forums/windowsdesktop/en-US/… ....主要想法是挂钩 ToggleDesktop() 调用...。这样您就知道它已被“调用”,或者挂钩 WIN +D 按键(当然,如果有人通过任务栏显示桌面单击显示桌面,这当然无济于事)......或使用计时器来检测 zorder 的变化。或者将您的窗口设置为 TopMost....但是您不太可能想要那个。 stackoverflow.com/questions/5477961/…