在C#中动态添加和加载资源中的图像

问题描述 投票:0回答:3

我的解决方案中添加了一些图像,现在它位于 images lowers 文件夹下 解决方案资源管理器内的 ose.png。我想要一种方法将此图像动态加载到我的图像控件中。

我当前的方法是使用“内容”类型并使用“始终复制”属性。然后我会给出图像的相对路径,如下所示。

Image2.Source = new BitmapImage(new Uri("/images/flowers/Customswipe_b.png", UriKind.Relative));

有没有办法让它从资源加载而不将其复制到目标系统。

c# wpf image resources
3个回答
21
投票

以下对我来说效果很好:

image.Source = new BitmapImage(new Uri("pack://application:,,,/YourAssemblyName;component/Resources/someimage.png", UriKind.Absolute));

此外,您还应该将图像的

Build Action
None
更改为
Resource


8
投票

您可以打开资源编辑器(解决方案资源管理器,单击 Resources.resx)并在其中添加图像。然后您可以简单地以

Bitmap
Properties.Resources.ImageId

的形式访问它

http://msdn.microsoft.com/en-us/library/3bka19x4(v=vs.100).aspx


6
投票

我在查找 URI 的确切语法时遇到了一些问题,因此请参阅下面的更多详细信息:

如果您的图像 (

myImage.png
) 位于子文件夹“images”(来自根目录)中,则确切的语法是:

image.Source = new BitmapImage(new Uri(@"pack://application:,,,/images/myImage.png", UriKind.Absolute));

如果您的图像位于子文件夹

images/icon/
(来自根目录),则语法为:

image.Source = new BitmapImage(new Uri(@"pack://application:,,,/images/icon/myImage.png", UriKind.Absolute));
  • 请注意,
    "pack://application:,,,
    部分不会改变。
  • 请务必将“构建操作”设置为“资源”

欲了解更多信息:请参阅此处

© www.soinside.com 2019 - 2024. All rights reserved.