Send to tray on Close
-
06-09-2019 - |
Question
How can I send the window minimized to tray when on click close button? Also how to show icon in tray when application start?
Solution
There is nothing that comes embedded with WPF. From implementations that you can find on the net, there is an "easy" one, that uses WinForms:
http://msdn.microsoft.com/en-us/library/aa972170.aspx
But I like this one more (can be used for balloon tips too)
OTHER TIPS
WinForm:
One approach is to set the Cancel property of FormClosingEventArgs in the FormClosing event of your window and instead minimize to tray. For minimizing to tray, see this article:
Code Project has more articles on the topic, but the one I linked worked for me.
WPF:
I've never had to do this in WPF but did poke around for a solution. I found this:
Creating a Tray Icon for a WPF Application
You'll find the code works but I recommend testing. The article addresses opening an application minimized to the tray.
You might also find this sample on MSDN useful:
In winforms you can overload WndProc and watch for the WM_CLOSE message.
WM_CLOSE = 0x0010
protected override void WndProc(ref Message m)
{
if(m.Msg == WM_CLOSE)
{
this.Hide();
trayIcon.Show();
}
}