2012-08-14 173 views
41

我有一个WPF窗口,其中有一个文件在我本地系统中的背景图像。因此,XAML文件看起来像这样:加载图像时,WPF抛出“找不到资源”异常

<Window.Background> 
    <ImageBrush ImageSource="/MYASSEMBLY;component/Resources/MyPic.png"/> 
</Window.Background> 

在XAML设计,它实际上显示了这个背景图像,所以图像不会在MyAssembly程序\ Resources文件夹存在。但是,在启动应用程序的InitializeComponent()函数调用时,它会抛出异常

无法找到资源'resources/mypic.png'。

所以我现在完全失去了。目录与设计和运行时间不同,因此运行时不存在?

+0

您是否设置了对dll的引用? – 2012-08-14 08:52:29

+0

建立模式的图像? (看到设计师的东西说*没有*) – 2012-08-14 08:53:04

+0

谢谢@ H.B。 ,就像我对答案评论的那样,我甚至没有把这个图像包含到项目中。我猜设计师和运行时的行为不同,对于像我这样的新人来说有点混乱。 – tete 2012-08-14 09:12:59

回答

105

在解决方案探索,设置图像“建设行动”属性“资源”,然后干净解决方案,并重建它。

+0

谢谢,解决了这个问题。我以为它会在运行时加载图片,所以我甚至没有将图片添加到项目中。 – tete 2012-08-14 09:11:33

+15

是的,不要忘记做干净和重建..作为嗡嗡声说..很容易错过的..我做:) – invalidusername 2014-01-13 13:53:01

+1

呵呵,我们大多数人,包括操作,并没有真正拥有该属性问题,但我们没有想到如果解决方案资源管理器中的映像已存在于物理目录中,则需要它。说实话,这是探索者所需要的。谢谢! – 2015-05-31 01:06:43

0

WPF抛出“无法找到资源”异常,当我使用locbaml工具进行本地化时出现此问题,当我编译时,出现此错误。有很多资源合并字典参考因此,将“资源”设置为“资源”的资源xaml文件的Build Action属性确实解决了问题。