为什么在运行时找不到图像的StaticResource?

10 浏览
0 Comments

为什么在运行时找不到图像的StaticResource?

我已经将一张图片添加到我的Resources.resx文件中。我像这样引用它:


在设计器中,我看到上面有一条蓝色的波浪线。它显示:

找不到资源"MyImage"。

运行时,它抛出以下错误:

在'System.Windows.Markup.StaticResourceHolder'上提供值时抛出异常。

有任何想法我做错了什么吗?

0
0 Comments

为什么在运行时找不到静态资源(StaticResource)的图像?

问题的原因是:在WPF中不要使用resx文件,因为需要添加一些代码来使其兼容。resx文件中的图像主要用于WinForms代码。

解决方法是:在文件属性中将Build Action设置为Resource,然后直接引用该文件即可:。这里不需要使用{Binding}或{StaticResource}。

如果Build Action设置为Resource,就没有以"../"开头的"相对路径"。实际上,它是一个没有pack://application:,,,/前缀的资源文件Pack URI,这个前缀会被XAML解析器自动添加。

如果资源与xaml文件在同一个程序集中,也可以使用相对于xaml文件的路径。我使用../来表示父目录。

0