C#/ Visual Studio:如何包含图像但不将它们嵌入到程序集中?

时间:2017-04-11 10:27:52

标签: c# winforms visual-studio resources structure

我正在开发一个使用各种菜单图标的软件。我希望用户能够通过替换我的程序集旁边的子目录中的文件来随意更改它们。像这样:

Program.exe
Data/Images/new.png
Data/Images/save.png
Data/Sounds/reload.wav

如何实现这种结构并仍然可以看到WinForms设计器中的图标?

如何将这样的结构可靠地集成到我的解决方案中?

我无法在网上找到任何相关信息,因为将它们包含在程序集中似乎是正常的。

1 个答案:

答案 0 :(得分:0)

您可以右键单击项目文件并选择Add -> New Folder。之后,右键单击新创建的文件夹,然后选择Add -> Existing Item...。浏览磁盘并添加图像。右键单击图像,然后选择“属性”。在属性窗口中,在Copy To Output Directory下选择Copy if newer选项。

这样图像将包含在项目中,但不会嵌入到.exe

编辑 - 几个例子: 要使用.ico文件作为表单图标,您可以编写如下内容:

string path = Path.Combine(Application.StartupPath, @"Data\Images\new.ico");
this.Icon = new Icon(path);

或者,加载图片并将其放入PictureBox:

string path = Path.Combine(Application.StartupPath, @"Data\Images\new.jpg");
this.pictureBox1.Image = Image.FromFile(path);