StreamResourceInfo尝试获取ResourceStream时是否为空引用异常?

时间:2012-09-01 00:00:54

标签: c# image windows-phone-7 io

我正在关注其中一个MSDN Windows Phone开发实验室简介,并遇到了this lab(Windows Phone应用程序可用控件简介)的问题。实验室提供起始文件和结束文件(即,完成实验后程序应该是什么样子)。

让我难过的实验室的特定部分是我从Assets文件夹中读取一系列图像,然后在屏幕上的ListBox中显示它们的点。每当此代码尝试运行时,它都会抛出Null Reference Exception:

public static BitmapImage GetImage(string filename)
    {
        string imgLocation = Application.Current.Resources["ImagesLocation"].ToString();

        StreamResourceInfo imageResource = Application.GetResourceStream(new Uri(imgLocation + filename, UriKind.Relative));
        BitmapImage image = new BitmapImage();
        image.SetSource(imageResource.Stream);

        return image;
    }

我尽可能多地挖掘,而且imageResource总是以某种方式结束Null,而且我不能为我的生活找出它出错的地方。

我已经包含了两个项目here的链接(129 MB,对不起)。 “Begin”文件夹下的所有内容都是我到目前为止所做的(当我在运行时尝试导航到Images页面时抛出异常)。 “结束”文件夹下的所有内容都应该是最终看起来像,并且功能正常。

我是C#和WP7开发的新手,所以任何帮助都会非常感激。谢谢!

2 个答案:

答案 0 :(得分:2)

尝试将.bmp的构建更改为“资源”。

以下是一些解释它的链接:

http://forums.silverlight.net/t/238891.aspx/1

Application.GetResourceStream called on a Content Resource still return null

答案 1 :(得分:1)

问题是当你在App.xaml文件中设置images目录时,教程中有一个错误。您应该像这样设置应用程序资源ImagesLocation

<system:String x:Key="ImagesLocation">Begin;component/Assets/Images/</system:String>

Begin是您的项目名称;component/需要作为分隔符,最后Assets/Images/是图像目录的相对路径。