有一个带ShowInTaskbar,Topmost的窗口,还有一个通知区域图标

时间:2012-04-17 10:24:51

标签: c# wpf winapi

我有一个程序,我希望能够处理所有三种状态:

  1. 不在任务栏中显示,就像Windows声音,网络程序等小部件一样
  2. 显示在任务栏中 - 但不是最顶层。该窗口仍会显示通知区域图标,并且仍然应该与#1相同,但也会在任务栏中显示该窗口。
  3. 在最顶层的任务栏中显示。窗口的行为应与#2相同,但现在窗口将显示在最顶层。注意:它应该仍然能够被最小化,就像点击任务栏图标最小化程序一样。
  4. 这些是我的标准,而且我一直在努力让他们一起工作得很好,但我似乎无法完成最后几次调整。 #1很好 - 我已经足够容易地排序了。 #2和#3导致更多问题。

    我的第一个问题是,Windows如何处理用户点击任务栏图标以使其最小化/切换回正常状态?因为我更愿意用#2和#3来模仿它。

    对于#1,我现在只需将Window.Visibility设置为Visibility.Hidden即可隐藏窗口。要显示该窗口,请拨打Show(),然后拨打Activate()

    就像我说的那样,对于#2和#3,我想复制Windows在用户点击任务栏图标时所做的事情。我能这样做吗?或者我是否必须找到另一种方法来做到这一点?

1 个答案:

答案 0 :(得分:0)

1-这称为缩略图按钮 enter image description here enter image description here

您可以查看http://elegantcode.com/2010/12/17/wpf-adding-thumbnail-buttons-to-windows-7-task-bar/http://shareourideas.com/2010/12/19/windows-7-taskbar-thumbnail-buttons-in-wpf/http://msdn.microsoft.com/en-us/library/ff699128.aspx

2-在Window类中有一个名为TopMost的属性。

3-表示任务栏图标

enter image description here您可以使用此库,它易于使用且功能强大http://www.codeproject.com/Articles/22876/WPF-Taskbar-Notifier-A-WPF-Taskbar-Notification-Wi

4-最小化和最大化你可以简单地使用

this.WindowState = FormWindowState.Maximized;

*这是您创建应用程序所需的所有信息,如果您遇到任何问题,请仔细阅读文章,如果问题仍然存在,请确切地问题在哪里并再次询问。

希望这有帮助...