使用.NET 4将程序最小化到系统托盘的最简单方法

我正在制作一个新的WPF应用程序,我需要能够最小化应用程序,并且在系统托盘中,在时钟旁边(或在一般区域)中保持良好和舒适。

这必须适用于Windows XP,Vista和7.我不必支持旧版本的Windows。

如果我使用.NET 4,最简单的方法是什么?

MSDN论坛中的示例

这是一个快速示例,说明如何最小化通知区域。 您需要添加对System.Window.Forms和System.Drawing程序集的引用。

public partial class Window1 : System.Windows.Window { public Window1() { InitializeComponent(); System.Windows.Forms.NotifyIcon ni = new System.Windows.Forms.NotifyIcon(); ni.Icon = new System.Drawing.Icon("Main.ico"); ni.Visible = true; ni.DoubleClick += delegate(object sender, EventArgs args) { this.Show(); this.WindowState = WindowState.Normal; }; } protected override void OnStateChanged(EventArgs e) { if (WindowState == System.Windows.WindowState.Minimized) this.Hide(); base.OnStateChanged(e); } } 

我在WPF中使用这个免费的notify-icon实现已经成功。

http://www.hardcodet.net/projects/wpf-notifyicon

设置非常简单,并提供源代码。 它不依赖于Windows Forms,因此它是“纯粹的”WPF并且可以自定义。

您可以在CodeProject上找到有关如何使用它的教程。

从Toolbox向您的应用添加notifyIcon
选择主form >>转到FromClosing event类型MainForm_FormClosing >>命中输入下的Properties >>选择Events图标>>。

在此处输入图像描述

在打开的.cs文件中输入以下事件操作:

 private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { this.Hide(); notifyIcon.Visible = true; ShowInTaskbar = false; e.Cancel = true; } 

现在,当您单击X按钮时,主窗体窗口将最小化到系统托盘。 下一步是让FORM恢复正常状态。
转到您的notifyIconProperties >>查找DoubleClick event >>键入NotifyIcon_DoubleClick并按Enter键以获取为您创建的事件function。

在此处输入图像描述

将此代码放入您的活动中:

 private void NotifyIcon_DoubleClick(object sender, EventArgs e) { this.Show(); notifyIcon.Visible = false; } 

现在,如果您想以花式样式制作通知图标,可以添加上下文菜单并将其链接到您的通知图标,这样您就可以得到类似的结果:

在此处输入图像描述

您可以在此处将contextMenuStrip链接到NotifyIcon:

在此处输入图像描述

祝好运!