You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C# Forms应用中嵌入图片文件夹并适配路径实现跨设备运行

解决C# Forms应用嵌入图片及路径修改问题

一、将图片嵌入应用程序集的两种方法

方法1:使用资源文件(.resx)管理图片

  • 右键项目 → 添加 → 新建项 → 选择“资源文件”(命名如ImageResources.resx)
  • 打开资源文件,点击顶部的添加资源 → 添加现有文件,选中需要的图片导入
  • 选中导入的图片,在属性窗口确认“生成操作”为“嵌入的资源”
  • 代码中直接调用资源:
// 替换为你的资源文件名和图片名
pictureBox1.Image = Properties.ImageResources.MyImage;

注:若需要跨项目访问资源,可在资源文件的属性窗口将“访问修饰符”改为public

方法2:直接将图片设为嵌入资源

  • 在项目中新建Resources文件夹,将图片放入其中(目录结构可自定义)
  • 选中图片文件,在属性窗口设置:
    • 生成操作:嵌入的资源
    • 复制到输出目录:不复制(因为已嵌入程序集)
  • 代码中通过程序集读取嵌入的资源:
// 获取当前程序集
var assembly = System.Reflection.Assembly.GetExecutingAssembly();
// 资源名格式:项目命名空间.文件夹路径.图片文件名(注意大小写和扩展名)
var resourceName = "YourProjectNamespace.Resources.MyImage.png";

using (Stream stream = assembly.GetManifestResourceStream(resourceName))
{
    if (stream != null)
    {
        pictureBox1.Image = Image.FromStream(stream);
    }
}

调试时可通过assembly.GetManifestResourceNames()列出所有嵌入资源,核对资源名是否正确

二、修改代码中的路径设置

  • 移除原来的本地绝对路径代码(如Image.FromFile(@"C:\LocalImages\pic.png"))
  • 替换为上述两种嵌入资源的调用方式
  • 若图片体积大、数量多,也可选择“复制到输出目录”方案:
    1. 新建Images文件夹放入图片,设置图片的复制到输出目录为“始终复制”
    2. 代码中使用相对路径:
var imagePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Images", "pic.png");
pictureBox1.Image = Image.FromFile(imagePath);

内容的提问来源于stack exchange,提问作者Kasım Atas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 22:05:09