wpf 图片资源和visual studio 2010 资源编辑器

标签 wpf visual-studio xaml image resource-editor

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

  • 资源编辑器是用于维护应用程序图像的好工具吗?
  • 将位图从编辑器转换为 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));
    

    关于wpf 图片资源和visual studio 2010 资源编辑器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3026832/

    相关文章:

    c# - WPF 窗口可以包含一个 child 吗?

    c# - 在 C# 中使用 GDCM 库加载 DICOM 图像并转换为 System.Windows.Control.Image

    c# - 我怎么知道 WPF 窗口在哪个监视器中

    c# - WPF 动画 : How do i make it slide in?

    c# - 将数据网格列绑定(bind)到动态属性

    c# - WPF 列表框。跳过字符串中的下划线符号

    c# - 我的 Visual Studio 2012 中不存在 LINQ to SQL

    c++ - Visual Studio 中的 "wcs"和 "_w"和 "_mbs"前缀

    c# - 当 UserControl 具有 DataContext 时,UserControl 的 DependencyProperty 为 null

    C++字符串,什么时候用什么?