WPF 绑定来自项目资源的图像源

5

好的,我在我的项目中有约5个图片资源。我想要做的是将一个图片源与我的项目资源绑定。在C#代码中这很容易实现,我只需要:

ImageHolder.Source = Properties.Resources.Image1.png.

如何在XAML中实现呢? 类似于这样:

<Image Source={??????}/>

提前感谢您。

2个回答

6

当您在resx文件中添加图片时,Visual Studio会创建Resources文件夹并将您的图片文件放入其中。

为了在绑定中使用此图像,您需要将构建操作从“None”更改为“Resource”。然后可以按以下方式进行绑定:

<Image Source="Resources/your_image_name.png"/>

因为你需要将 System.Drawing.Bitmap 转换成 WPF BitmapSource,所以无法直接绑定到 Propetries.Resources.your_image_name。但是,您可以绑定到 Resource.resx 中的字符串:

<TextBlock Text="{x:Static properties:Resources.YourStringResource}"></TextBlock>

阅读此处如何将 System.Drawing.Bitmap 转换为 WPF 位图: 从 System.Drawing.Bitmap 加载 WPF BitmapImage

这里涉及到绑定 resx 文件中的值:在 XAML 中获取 *.resx 文件的值


2

请确保你的image文件的Build Action已标记为Resource,然后你可以在XAML中简单地执行以下操作 -

<Image Source="Properties/Resources/a.png"/>

假设您的项目中有一个名为Propetries/Resources的文件夹结构,其中包含您的图像。

@Drammy - 我猜这只是OP的一个笔误。无论如何,我已经在回答中更新了。 - Rohit Vats

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接