我提出这个问题的动机实际上只是通过 ImageSource 的依赖属性指定要在用户控件中使用的图像。我遇到了一些涉及管理、访问和单元测试的痛点。

  • 资源编辑器是用于维护应用程序图像的好工具吗?
  • 将位图从编辑器转换为图像源的最佳方法是什么?
  • 如何从编辑器中获取资源文件名?
有帮助吗?

解决方案

不,资源编辑器不是一个很好的工具。

在 WPF 应用程序中,最好的方法是将所有图像放入“图像”目录中,并将每个图像标记为“资源”。然后您可以直接在图像控件和其他地方引用它们。

以下是具体步骤:

  • 使用您最喜欢的位图编辑程序(Paint.NET、Photoshop 等)裁剪和调整图像
  • 将它们保存为 .png 文件(如果您愿意,也可以保存为 .jpg 或 .gif)
  • 在 Visual Studio 解决方案中创建一个“Images”文件夹(或多个文件夹,无论您想要如何组织它)
  • 将图像从硬盘拖到“图像”文件夹中(或右键单击项目,选择“新建”->“现有项目”,然后选择图像)

现在您可以在 XAML 中轻松引用图像:

<Image Source="Images/MyImage.png" />

或者在代码中:

var source = (BitmapSource)Application.LoadComponent(
               new Uri("Images/MyImage.png", UriKind.Relative));

您还可以在外部程序集中引用图像:

<Image Source="ReferencedAssembly;v1.0.0.1;component/Images/MyImage.png" />

代码如下:

var source = (BitmapSource)Application.LoadComponent(
               new Uri("ReferencedAssembly;v1.0.0.1;component/Images/MyImage.png",
                 UriKind.Relative));
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top