我Image
在Window上设置了一个控件,我想显示一个存储在名为"Resources.resx"的项目资源文件中的图像.资源文件中的图像名称为"搜索".
有人能告诉我如何做到这一点吗?
Viv*_*Viv 107
如果图像位于资源文件夹中,并且其构建操作设置为"资源".您可以在XAML中引用图像,如下所示:
"pack://application:,,,/Resources/Search.png"
Run Code Online (Sandbox Code Playgroud)
假设您在Resources文件夹下没有任何文件夹结构,并且它是一个应用程序.例如,我使用:
ImageSource="pack://application:,,,/Resources/RibbonImages/CloseButton.png"
Run Code Online (Sandbox Code Playgroud)
当我在Resources文件夹下有一个名为RibbonImages的文件夹时.
Ran*_*ngy 27
如果您在项目的Icons文件夹中有一个图像,并且其构建操作是"Resource",您可以像这样引用它:
<Image Source="/Icons/play_small.png" />
Run Code Online (Sandbox Code Playgroud)
这是最简单的方法.这是我唯一可以从资源角度完全做到这一点并且没有项目文件的方法:
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;
Run Code Online (Sandbox Code Playgroud)
使用资源文件的好处之一是按名称访问资源,因此图像可以更改,图像名称可以更改,只要资源保持最新,就会显示正确的图像.
这是一个更简洁的方法来实现这一点:假设Resources.resx在'UI.Images'命名空间中,在你的xaml中添加命名空间引用,如下所示:
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:UI="clr-namespace:UI.Images"
Run Code Online (Sandbox Code Playgroud)
像这样设置你的Image源:
<Image Source={Binding {x:Static UI:Resources.Search}} />
其中"搜索"是资源的名称.
小智 5
<Image Source="MyRessourceDir\images\addButton.png"/>
归档时间: |
|
查看次数: |
159765 次 |
最近记录: |