NotifyIcon notifyIcon1;
void InitTrayMenu() // 在构造函数时调用此函数
{
// Create the NotifyIcon.
this.notifyIcon1 = new System.Windows.Forms.NotifyIcon();
// The Icon property sets the icon that will appear
// in the systray for this application.
System.IO.Stream iconStream = System.Windows.Application.GetResourceStream(new Uri("pack://application:,,, /Images/demo.ico")).Stream;
notifyIcon1.Icon = new System.Drawing.Icon(iconStream);
// The ContextMenu property sets the menu that will
// appear when the systray icon is right clicked.
System.Windows.Forms.ContextMenu contextMenu1 = new System.Windows.Forms.ContextMenu();
System.Windows.Forms.MenuItem menuItem1 = new System.Windows.Forms.MenuItem("退出");
menuItem1.Click += new System.EventHandler(this.menuItem1_Click);
contextMenu1.MenuItems.Clear();
contextMenu1.MenuItems.Add(menuItem1);
notifyIcon1.ContextMenu = contextMenu1;
notifyIcon1.Text = "ABC Virtual Panel";
notifyIcon1.Visible = true;
// Handle the Click event to activate the form.
notifyIcon1.Click += notifyIcon1_Click;
}
void notifyIcon1_Click(object sender, EventArgs e)
{
this.Show();
this.ShowInTaskbar = true;
}
private void menuItem1_Click(object sender, System.EventArgs e)
{
this.MainWindowExitPoint();
}
注意: this.show(); this.Hide(); 这两句不要写成
this.WindowState = WindowState.Normal;
this.WindowState = WindowState.Minimized;
因为这样在win8.1 系统的时候会出现,窗口只最小化到左下角(即是还能看到单独的标题栏).