关闭时发送到托盘

时间:2009-06-02 03:23:09

标签: c# .net wpf system-tray

单击关闭按钮时,如何将窗口最小化发送到托盘? 还有如何在应用程序启动时在托盘中显示图标?

3 个答案:

答案 0 :(得分:8)

<强>的WinForm:

一种方法是在窗口的FormClosing事件中设置FormClosingEventArgs的Cancel属性,而不是最小化到托盘。要最小化托盘,请参阅以下文章:

Window Tray Minimizer

代码项目有更多关于该主题的文章,但我链接的文章为我工作。

<强> WPF:

我从来没有在WPF中做过这个,但确实找到了解决方案。我发现了这个:

Creating a Tray Icon for a WPF Application

您会发现代码有效,但我建议您进行测试。该文章解决了打开最小化到托盘的应用程序的问题。

您可能还会在MSDN上找到此示例:

Notification Icon Sample

答案 1 :(得分:5)

WPF没有嵌入任何内容。从你可以在网上找到的实现,有一个“简单”,使用WinForms:

http://msdn.microsoft.com/en-us/library/aa972170.aspx

但我更喜欢这个(也可以用于气球提示)

http://www.codeproject.com/KB/WPF/wpf_notifyicon.aspx

答案 2 :(得分:1)

在winforms中,您可以重载WndProc并监视WM_CLOSE消息。

    WM_CLOSE = 0x0010

    protected override void WndProc(ref Message m)
    {
      if(m.Msg == WM_CLOSE)
      {
        this.Hide();
        trayIcon.Show();
      }

    }