我不确切知道它是否是一个错误,但我一直在获取运行时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'.
图像(更高分辨率点击图像鼠标右键,然后点击显示图像或类似的东西):
答案 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'