WPF - 将应用程序从系统托盘置于最前面

Posted

技术标签:

【中文标题】WPF - 将应用程序从系统托盘置于最前面【英文标题】:WPF - Bring application to front from system tray 【发布时间】:2019-03-16 16:31:12 【问题描述】:

我正在使用 System.Windows.Forms.NotifyIcon 将我的应用最小化到系统托盘。我想在用户尝试打开应用程序的另一个实例时将应用程序返回到前面

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

如何使用 WPF 实现这一点?

【问题讨论】:

【参考方案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();
    

希望对你有帮助

【讨论】:

感谢您的解决方案。 :) 但是我想要的是在用户运行应用程序的另一个实例时调用类似的功能,而不是在单击系统托盘中的图标时调用。

以上是关于WPF - 将应用程序从系统托盘置于最前面的主要内容,如果未能解决你的问题,请参考以下文章

从系统托盘中的图标获取工具提示文本

如何在 Qt 中打开和最小化外部应用程序到系统托盘

如何将delphi程序图标放入系统托盘中?

WPF 在关闭程序了之后,托盘图标依然存在,请问怎么解决?

Qt开发实现系统托盘,托盘菜单,托盘消息

WPF:即使显式设置 WindowState,窗口也会保持最小化