找不到资源

时间:2012-10-19 21:45:17

标签: c# wpf

我不确切知道它是否是一个错误,但我一直在获取运行时IOException错误,指出无法找到资源。

我在画布背景中加载我的应用程序(c#,WPF)中的一些图像取决于数据库状态。 问题是,我无法加载LAST(字母排序)文件。我在文件夹中有15个图像。我可以首先加载14而没有问题。但最后一个一直抛出异常。

我100%肯定,我有文件夹中的图像(请参阅下面的!image-printscreen)。 我是怎么写的。 14首先我可以加载没有任何问题,只有最后一个抛出异常。

它是WPF-c#中的错误还是我做错了什么?

代码什么是抛出异常:

canvas_status.Background = new ImageBrush(new BitmapImage(new Uri(BaseUriHelper.GetBaseUri(this), @"Images\" + statusName + ".png")));

canvas_name.Background = new ImageBrush(new BitmapImage(new Uri(BaseUriHelper.GetBaseUri(this), @"Images\" + statusName + bulheadName + ".png")));

错误:

IOException was unhalded
Cannot locate resource 'view/images/panel_uzavreno_d.png'.

图像(更高分辨率点击图像鼠标右键,然后点击显示图像或类似的东西):

printscreen

2 个答案:

答案 0 :(得分:30)

我遇到了类似的问题:IOException,无法找到程序集中确实存在的png资源。

我通过明确指定程序集名称找到了解决方案,即使调用者与资源位于同一程序集中。

以下是使用Pack URI语法的外观:

pack://application:,,,/MyAssemblyName;component/MyResourcesFolder/MyImage.png

(有关包URI的更多信息,请参阅http://msdn.microsoft.com/en-us/library/aa970069.aspx

编辑:在指定程序集名称后,我必须做的另一件事是清理项目。问题在构建后返回,但在清洁中间产品后解决了。这绝对是Visual Studio中的一个错误。

答案 1 :(得分:16)

您需要将图像的构建操作设置为“资源”类型。

右键单击文件>>属性>>将'Build Action'设置为'Resource'