将Resources.resx 中的BitmapImage 分配给Image.Source?

Posted

技术标签:

【中文标题】将Resources.resx 中的BitmapImage 分配给Image.Source?【英文标题】:Assign BitmapImage from Resources.resx to Image.Source? 【发布时间】:2012-09-23 08:02:35 【问题描述】:

我想将我的 Resources.resx 中的 BitmapImage 分配给 Image。 事先我将 .png 图像保存到 Resources.resx。此图片现在位于“/Resources/logo.png”中。

在阅读了几篇 SO 帖子和其他文章后,我现在有了这个:

logoImage.Source = new BitmapImage(new Uri(@"pack://application:,,,/Resources/logo.png"));

不幸的是,它不起作用。 我不知道如何解决这个问题。

我尝试将Pack-URI 替换为完整路径并且它有效,但我想使用相对路径以便在绝对路径不正确的不同机器上使用相同的源。

谁能帮我解决这个问题?

【问题讨论】:

【参考方案1】:

为了使 Uri 工作,文件 logo.png 必须包含在 VS 项目中名为“Resources”的文件夹中(参见第一张图片),并且它的 Build Action 必须设置为 Resource(参见第二张图片) .

此 Resources 文件夹与 Resources.resx 完全无关。您可以将其重命名为您喜欢的任何名称。

【讨论】:

看起来文件也必须是小写的。我尝试了同样的事情,但由于某种奇怪的原因,资源名称似乎被强制小写。

以上是关于将Resources.resx 中的BitmapImage 分配给Image.Source?的主要内容,如果未能解决你的问题,请参考以下文章

WINFORM 如何利用代码动态把资源加入到resources.resx

WPF 访问 Resources.resx 资源文件

大型项目中的资源 (resx) 维护

WPF 中.XAML文件如何读取资源文件?

resx 未将对象引用设置到对象的实例

以编程方式更改语言就像英语到法语 wpf