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

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

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

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

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

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

当我有一个名为RibbonImages资源文件夹下的文件夹。

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

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

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

 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”是资源的名称。

  1. 将文件夹添加到您的项目中,并通过“Existing Item”将图像添加到这些文件夹中。
  2. XAML与此类似: <Image Source="MyRessourceDir\images\addButton.png"/>
  3. F6(Build)

已经讨论过了,好像这里有个例子

你也可以看看这里 ,你可以更深入地了解什么是可能的。