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

11 浏览
0 Comments

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

我想将我的Resources.resx中的BitmapImage分配给一个Image。

事先我将一个.png图片保存到Resources.resx中。现在这个图片位于"/Resources/logo.png"。

在阅读了几篇SO帖子和其他文章后,我现在有了以下代码:

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

不幸的是,它不起作用。

我不知道该如何解决这个问题。

我尝试用完整路径替换Pack-URI,它可以工作,但我想使用相对路径,以便在不同的机器上使用相同的资源,而绝对路径可能是不正确的。

有人可以帮我解决这个问题吗?

0
0 Comments

问题原因:

在将BitmapImage从Resources.resx赋值给Image.Source时,需要确保资源文件logo.png位于VS项目的名为"Resources"的文件夹中,并且其Build Action属性被设置为Resource。这个Resources文件夹与Resources.resx是完全无关的,你可以将其重命名为任何你喜欢的名字。

解决方法:

1. 确保资源文件logo.png位于VS项目的名为"Resources"的文件夹中。

2. 打开资源文件logo.png的属性。

3. 确保Build Action属性被设置为Resource。

代码示例:

// 找到资源文件的Uri
Uri uri = new Uri("pack://application:,,,/Resources/logo.png");
// 创建BitmapImage对象
BitmapImage bitmap = new BitmapImage();
bitmap.UriSource = uri;
// 将BitmapImage赋值给Image.Source
myImage.Source = bitmap;

以上是解决该问题的方法,如果按照上述步骤进行操作,就能够成功将BitmapImage从Resources.resx赋值给Image.Source。

0