代码:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
///托盘图标呈现;
System.Windows.Forms.NotifyIcon ni = new System.Windows.Forms.NotifyIcon();
ni.Icon = new System.Drawing.Icon("Main.ico");
ni.Visible = true;
ni.DoubleClick +=
delegate(object sender, EventArgs args)
{
this.Show();
this.WindowState = WindowState.Normal;
};
}
//窗口状态变化事件
protected override void OnStateChanged(EventArgs e)
{
if (WindowState == WindowState.Minimized)
this.Hide(); //即,如果收到“窗口最小化”命令,则窗口隐藏。
base.OnStateChanged(e); //如果不是,不做处理(准确的说,是根据参数e做调整)
}
}
我正在努力实现我的App MainWindow最小化到traypanel.And我找到了这个代码片段。但它在我的VS2012中不起作用。
源:(Easiest way to have a program minimize itself to the system tray using .NET 4)
我想是的,因为我在Project中没有图标文件。所以,我选择了一个图标文件(.ico)并将其粘贴到我的项目中。此外,它没有'工作。
[问题已解决,谢谢大家] 我应该将图标文件粘贴到生成.exe文件的文件夹中。囧~~
答案 0 :(得分:0)
我很幸运找到了解决方法:将图标文件粘贴到生成.exe文件的文件夹中,而不是将其粘贴到VS中的项目文件夹中。
我不知道为什么,但确实有效。