我正在使用WindowsForms中的NotifyIcon,因为在WPF中我们没有这样的控件,但WinForms中的那个工作正常,我的问题是当图像在Project中时,只在NotifyIcon中将图像设置为图标。 / p>
我将图像放在项目中名为Images的文件夹中,图像文件调用'notification.ico'。
这是我的NotifyIcon:
System.Windows.Forms.NotifyIcon sysIcon = new System.Windows.Forms.NotifyIcon()
{
Icon = new System.Drawing.Icon(@"/Images/notification.ico"),
ContextMenu = menu,
Visible = true
};
我在这里做错了什么?
我可以在XAML中创建我的NotifyIcon而不是Code Behind吗?如果有可能,我该怎么做?
提前致谢!
答案 0 :(得分:10)
System.Drawing.Icon
不支持用于WPF资源的pack://
URI方案。你可以:
将您的图标作为resx文件中的嵌入资源包含在内,并直接使用生成的属性:
System.Windows.Forms.NotifyIcon sysIcon = new System.Windows.Forms.NotifyIcon()
{
Icon = Properties.Resources.notification,
ContextMenu = menu,
Visible = true
};
或从URI手动加载:
StreamResourceInfo sri = Application.GetResourceStream(new Uri("/Images/notification.ico"));
System.Windows.Forms.NotifyIcon sysIcon = new System.Windows.Forms.NotifyIcon()
{
Icon = new System.Drawing.Icon(sri.Stream),
ContextMenu = menu,
Visible = true
};