如何在WPF中使用GetResourceStream加载图标?

时间:2011-04-06 13:03:35

标签: wpf resources uri

我在我的WPF项目中添加了一个图标(BuildAction设置为Resource),我现在正尝试将该图标加载到流中:

using(Stream iconStream = Application.GetResourceStream(new Uri("red.ico")).Stream)
{
    // use the stream
}

这给了我以下错误:

  

无效的URI:无法确定URI的格式。

我尝试改变Uri构造以包含UriKind.Relative。这给出了:

  

找不到资源'red.ico'。

我查看了For Example (from SO)上的各种文章,我看不出我做错了什么。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

尝试new Uri("pack://application:,,,/red.ico")之类的内容,有关WPF中URI的详细信息,请参阅this page

答案 1 :(得分:0)

最终我的问题归结为我已经为我的WPF应用程序创建了一个自定义入口点,并且我试图在调用Application的静态结构之前创建一个URI。

代码改变了这样的事情:

public static void Main()
{
    var myUri = new Uri("/red.ico", UriKind.Relative);

    var app = new AppMain();
    app.Run();
}

这样的事情:

public static void Main()
{
    var app = new AppMain();        

    var myUri = new Uri("/red.ico", UriKind.Relative);

    app.Run();
}