【问题标题】:WPF NotifyIcon problems [duplicate]WPF NotifyIcon问题[重复]
【发布时间】:2014-01-31 00:05:28
【问题描述】:

您好,当我尝试将图标添加到 NotifyIcon 时,我遇到了一些解析器错误。这个工作正常:

System.Windows.Forms.NotifyIcon ni = new System.Windows.Forms.NotifyIcon();

ni.Icon = new System.Drawing.Icon("C:\\Users\\Daniel\\Documents\\Visual Studio
2012\\Projects\\Pies\\Pies\\main.ico");

但是当我尝试以这种方式进行时:

ni.Icon = new System.Drawing.Icon("main.ico");

它返回一些奇怪的 ParserError。我将 main.ico 添加到项目中。当我在 xaml 中添加图像时,我只是使用“/image/image.jpg”,但这不想以这种方式工作。你知道为什么吗?

【问题讨论】:

  • 那个“奇怪的 ParserError”对你来说可能读起来像希腊语,你完全不知道它是什么意思。但是告诉我们到底是什么问题。最好不要假设我们会像您一样对错误消息感到困惑。
  • 如果你想查看所有错误信息,请转到 VS2012>new project>wpf C#,添加一些图标,将这两个通道复制到 public MainWindow()。

标签: c# wpf notifyicon


【解决方案1】:

注意,您正尝试在 WPF 项目中使用 WinForms 控件。而icon class from WinForms 不支持包 URI。

由于您想将图像存储在程序集中,因此无法轻松地将其作为 WinForms 图标。 WPF 通常与 ImageSource 类一起使用,您可以将其转换为 WF 图标 (How can I convert BitmapImage to Icon?),但我会称之为痛苦。

NotifyIcon 在 WPF 中没有实现,所以我建议试试这个solution

更多详情:Can I use NotifyIcon in WPF?

【讨论】:

    【解决方案2】:

    你为什么不在你的解决方案中添加 .ico 文件并像这样指向它的引用

    尝试这样做

    ni.Icon = new System.Drawing.Icon(@"pack://application:,,,/Icon/main.ico");
    

    【讨论】:

    • 它给了我同样的错误:XamlParseException,我已经将此iso添加为项目图标。
    • 我应该用一些东西替换这个逗号还是像这样复制?在这种格式下,它仍然返回与以前相同的错误。
    • 无论如何我只是不希望它是静态字符串,因为当我将这个应用程序发送给任何人时它无法运行。
    • 谢谢,无论如何,这篇文章是重复的,我已经标记了它。抱歉重复了。
    猜你喜欢
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多