我有一个程序希望能够处理所有三种状态:
- 不显示在任务栏中,仅充当 Windows 声音、网络程序等小部件
- 显示在任务栏中 - 但不是最顶层。该窗口仍将显示通知区域图标,并且仍应以与#1 相同的方式运行,但也会在任务栏中显示该窗口。
- 显示在最顶部的任务栏中。窗口的行为应该与 #2 相同,但现在窗口将显示在最顶部。注意:它应该仍然能够被最小化,就像单击任务栏图标最小化程序一样。
这些是我的标准,我一直在努力让它们一起很好地工作,但我似乎无法解决最后几个调整。#1很好 - 我已经很容易地解决了这个问题。#2 和 #3 会导致更多问题。
我的第一个问题是,Windows 如何处理用户单击任务栏图标以使其最小化/切换回正常状态?因为我更喜欢用#2 和#3 来模拟它。
对于#1,我目前只需将窗口设置Window.Visibility
为Visibility.Hidden
. 并显示窗口,调用Show()
然后Activate()
。
就像我说的,对于#2 和#3,我想复制 Windows 在用户单击任务栏图标时所做的事情。我可以这样做吗?还是我必须找到另一种方法来做到这一点?