资源,放置它们的位置以及如何在C#中引用它们

Oog*_*oga 11 c# resources winforms

我已经使用过C#和其他编程语言一段时间了,我很惭愧地说我不熟悉程序图标等资源的放置标准,以及如何在我的代码中引用它们.

具体来说,对于C#Windows窗体应用程序,在哪里放置我的图标资源是合适的,一旦我将它们放在正确的位置,引用它们的路径是什么?

非常感谢您的帮助.

Kev*_*ler 10

您可以将Resources.resx文件添加到项目中,并向其中添加图像,字符串,文件等资源.然后,您可以通过自动生成的Resources类引用这些资源.默认情况下,Visual Studio将在Properties目录中创建一个Resources.resx文件.默认情况下,您添加到资源文件的任何资源都将添加到Resources目录中.

例如

this.BackgroundImage = Properties.Resources.MyImage;
Run Code Online (Sandbox Code Playgroud)


Eri*_*ase 8

为了完成我想阐述一些列出的答案。

嵌入Resources.resx

Resources.resx应该在创建WinForms项目时已创建。您可以在Properties中的下查看它Solution Explorer

在此处输入图片说明

双击Resources.resx以打开设计器。您可以从Windows ExplorerVS资源设计器中复制和粘贴。该工具足够聪明,可以找出资源的类型,并且在下面的屏幕快照中可以看到,相似的资源类型在菜单栏的下拉列表中分组在一起。

在此处输入图片说明

从这一点开始,您可以按照接受的答案并将资源手动分配给控件的属性...

this.BackgroundImage = Properties.Resources.MyImage;


通过设计师嵌入表格

使用设计器,您可以将资源嵌入表单的中.resx。在设计器中选择控件,然后打开Properties窗口(这F4是默认快捷键)。找到适当的属性,例如Icon表单。单击省略号按钮以弹出Open File对话框。浏览到资源(如果您将Resources.resx其嵌入到资源中,则实际上将在Resources文件夹中-该文件夹是在您向其中添加第一个资源时创建的,Resources.resx并且应该使用上面的第一种方法),然后选择正确的资源。

在下图中,您可以看到“ scrape.ico”文件被设置为Main表单的Icon

在此处输入图片说明

这个例子最终会Main像这样在表单的设计器中生成一条线...

this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
Run Code Online (Sandbox Code Playgroud)

哪里...

System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main));
Run Code Online (Sandbox Code Playgroud)

并在main.resx...

<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        ...img data...
    </value>
</data>
Run Code Online (Sandbox Code Playgroud)