Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 关闭时发送到托盘_C#_.net_Wpf_System Tray - Fatal编程技术网

C# 关闭时发送到托盘

C# 关闭时发送到托盘,c#,.net,wpf,system-tray,C#,.net,Wpf,System Tray,单击“关闭”按钮时,如何将窗口最小化发送到托盘? 应用程序启动时如何在托盘中显示图标?WinForm: 一种方法是在窗口的FormClosingEventArgs事件中设置FormClosingEventArgs的Cancel属性,并将其最小化为tray。有关最小化到托盘的信息,请参阅本文: CodeProject有更多关于这个主题的文章,但我链接的那篇文章对我有用 WPF: 我从来没有在WPF中做过这件事,但我确实找到了解决方案。我发现: 您会发现代码是有效的,但我建议您进行测试。这篇文章

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

WinForm:

一种方法是在窗口的FormClosingEventArgs事件中设置FormClosingEventArgs的Cancel属性,并将其最小化为tray。有关最小化到托盘的信息,请参阅本文:

CodeProject有更多关于这个主题的文章,但我链接的那篇文章对我有用

WPF:

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

您会发现代码是有效的,但我建议您进行测试。这篇文章讨论如何打开一个最小化到托盘的应用程序

您可能还会发现MSDN上的此示例非常有用:


WPF没有嵌入任何东西。从您可以在网上找到的实现中,有一个“简单”的实现,它使用WinForms:

但我更喜欢这个(也可以用来做气球头)


在winforms中,您可以重载WndProc并查看WM\U CLOSE消息

    WM_CLOSE = 0x0010

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

    }

这个不容易连接到WPF应用程序。你说得对,Sergey。我搜索了一下,发现了一些资源,但没有任何东西能让我完全满意。