如何在XAML中引用图像资源?

我对WPF很陌生。 我把一个Image控件放在一个Window上,我想将控件上的图像设置为一个存储在名为“Resources.resx”的项目资源文件中的图像。 资源文件中图像的名称是“搜索”。 有人能告诉我如何去做这件事吗?


如果图像位于资源文件夹中,并且其构建操作设置为资源。 您可以按如下方式在XAML中引用图像:

"pack://application:,,,/Resources/Search.png"

假设您在Resources文件夹下没有任何文件夹结构,并且它是一个应用程序。 例如我使用:

ImageSource="pack://application:,,,/Resources/RibbonImages/CloseButton.png"

当我在Resources文件夹下有一个名为RibbonImages的文件夹时。


如果您的项目的图标文件夹中有图像,并且其构建操作是“资源”,则可以像这样引用它:

<Image Source="/Icons/play_small.png" />

这是最简单的方法。 这是我从纯粹的资源角度和没有项目文件中完成的唯一方法:

var resourceManager = new ResourceManager(typeof (Resources));
var bitmap = resourceManager.GetObject("Search") as System.Drawing.Bitmap;

var memoryStream = new MemoryStream();
bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Bmp);
memoryStream.Position = 0;

var bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.StreamSource = memoryStream;
bitmapImage.EndInit();

this.image1.Source = bitmapImage;

使用资源文件的好处之一是通过名称访问资源,所以图像可以更改,图像名称可以更改,只要资源保持最新,正确的图像就会显示出来。

这里有一个更清晰的方法来实现这一点:假设Resources.resx位于'UI.Images'命名空间中,请在xaml中添加名称空间引用,如下所示:

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:UI="clr-namespace:UI.Images" 

像这样设置你的图像源:

<Image Source={Binding {x:Static UI:Resources.Search}} />其中'Search'是资源的名称。

链接地址: http://www.djcxy.com/p/50431.html

上一篇: How to reference image resources in XAML?

下一篇: Acessing WPF XAML Resources from non