WPF-将应用程序从系统托盘移到最前面

时间:2018-10-11 14:29:39

标签: wpf singleton user32 notifyicon

我正在使用 System.Windows.Forms.NotifyIcon 将应用程序最小化到系统任务栏。我想在用户尝试打开该应用程序的另一个实例时,将应用程序恢复到最前

如果应用程序的第一个实例隐藏在其他应用程序的后面,则this site中的代码可以正常工作,但最小化到系统托盘时则不能。

如何使用WPF来实现呢?

1 个答案:

答案 0 :(得分:1)

您可以通过注册通知图标的点击事件来实现此目的,

  private void SetSystemTrayIcon()
    {

        System.Windows.Forms.NotifyIcon notifyIcon = new System.Windows.Forms.NotifyIcon
        {
            Icon = new System.Drawing.Icon(sri.Stream),
            Visible = true
        };
        notifyIcon.Click += NotifyIcon_Click;
    }

    private void NotifyIcon_Click(object sender, EventArgs e)
    {
        var mainWindow = Application.Current.Windows[0];
        mainWindow.Show();
    }

我希望这可以帮助您