将图像添加到Windows窗体,以便它们在发布后工作

时间:2014-02-20 00:32:05

标签: c# image visual-studio-2013

我目前正在我的窗体中设置我的图像:

pictureBox1.Image = Image.FromFile("C:\\Users\\User\\Documents\\Visual Studio 2013\\Projects\\WindowsFormsApplication1\\WindowsFormsApplication1\\Krum\\11.jpg");

但是,在我发布产品并从另一个位置的另一台计算机加载产品后,这将不起作用。

如何将图像添加到项目中,以便在我发布并将其发送到另一台计算机后它们可以正常工作?我使用什么路径以及在哪里添加它们?

更新

将属性添加到属性后尝试查找文件的路径效果不佳。在我的属性中,文件看起来像这样:

internal static System.Drawing.Bitmap one {
        get {
            object obj = ResourceManager.GetObject("one", resourceCulture);
            return ((System.Drawing.Bitmap)(obj));
        }
    }

然后我尝试使用它:

System.Reflection.Assembly thisExe;
        thisExe = System.Reflection.Assembly.GetExecutingAssembly();
        System.IO.Stream file =
            thisExe.GetManifestResourceStream("WindowsFormsApplication1.Properties.Resources.one");
        this.pictureBox1.Image = Image.FromStream(file);

2 个答案:

答案 0 :(得分:2)

将图像文件添加到项目中,并在“解决方案资源管理器”中将“构建操作”属性设置为“嵌入资源”,然后使用以下内容:

System.Reflection.Assembly thisExe;
thisExe = System.Reflection.Assembly.GetExecutingAssembly();
System.IO.Stream file = 
    thisExe.GetManifestResourceStream("AssemblyName.ImageFile.jpg");
this.pictureBox1.Image = Image.FromStream(file);

参考:http://msdn.microsoft.com/en-us/library/aa287676(v=vs.71).aspx

答案 1 :(得分:0)

如果您不想将图像嵌入到汇编文件中,您可以随时将它们添加到解决方案中,将属性“复制到输出目录”设置为“始终”,然后使用以下代码访问相对路径:

var directory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
var filename = Path.Combine(directory, "Images", "Image1.png");

此外,如果您使用的是安装项目,还要包含要与程序集一起安装的文件夹/文件。