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