将Resources.resx中的BitmapImage分配给Image.Source?
将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,它可以工作,但我想使用相对路径,以便在不同的机器上使用相同的资源,而绝对路径可能是不正确的。
有人可以帮我解决这个问题吗?
问题原因:
在将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。