.NET NotifyIcon随机消失

时间:2013-12-04 19:12:33

标签: c# .net wpf user-interface

我有一个WPF应用程序,它包含一个长时间运行的主窗口。在MainWindow构造函数中,我定义了一个Notify图标:

private System.Windows.Forms.NotifyIcon notifyIcon;

public MainWindow()
{
   InitializeComponent();

   System.Windows.Forms.ContextMenu notifyMenu = new System.Windows.Forms.ContextMenu();
   System.Windows.Forms.MenuItem notifyMenuItem = new System.Windows.Forms.MenuItem();
   notifyMenuItem.Text = "Exit MainWindow";
   notifyMenuItem.Click += new EventHandler(notifyMenuItem_Click);
   notifyMenu.MenuItems.Add(notifyMenuItem);
   notifyIcon = new System.Windows.Forms.NotifyIcon();
   notifyIcon.BalloonTipText = "MainWindow has been minimized. Click the tray icon to show.";
   notifyIcon.BalloonTipTitle = "MainWindow";
   notifyIcon.Text = "MainWindow";
   notifyIcon.Icon = new System.Drawing.Icon("some.ico");
   notifyIcon.Visible = true;
   notifyIcon.Click += new EventHandler(notifyIcon_Click);
   notifyIcon.ContextMenu = notifyMenu;
}

这一切都很好,除了有时NotifyIcon从托盘中消失。代码中绝对没有notifyIcon.Visible = false;设置,因为NotifyIcon也应该是可见的。我的应用程序(按要求)没有显示在任务栏中并使用单个实例管理器(如果另一个实例启动,则需要更新的实例立即中止)。因此,这会导致应用程序最小化到托盘,NotifyIcon消失以及应用程序未运行的用户事物(它是)并且无法启动新应用程序(单实例机制)。

我在这个问题上看过一些SO帖子,但他们似乎责怪NotifyIcon在主窗口以外的地方实例化,这不适用于我的情况。片状NotifyIcon行为还有其他原因以及补救措施吗?

0 个答案:

没有答案