2024年1月7日发(作者:)
添加和编辑资源 (Visual C#)Visual C# 应用程序中经常会包含非源代码的数据。此类数据称为“项目资源”,它可以包含应用程序所需的二进制数据、文本文件、音频或视频文件、字符串表、图标、图像、XML 文件或任何其他类型的数据。项目资源数据以 XML 格式存储在 .resx 文件中(默认文件名为),可在“解决方案资源管理器”中打开此文件。有关项目资源的更多信息,请参见使用资源文件。向项目中添加资源可以将资源添加到项目中,方法是:在“解决方案资源管理器”中,在该项目下右击“属性”节点,单击“打开”,再单击“项目设计器”中“资源”页上的“添加资源”按钮。可以将资源作为链接的资源(外部文件)或嵌入的资源(直接嵌入到.resx 文件中)添加到项目中。在添加链接的资源时,存储项目资源信息的 .resx 文件仅包含指向磁盘上资源文件的相对路径。如果将图像、视频或其他复杂文件作为链接的资源进行添加,则可以使用默认编辑器编辑它们,可在资源设计器中为文件类型设置关联的默认编辑器。当添加嵌入的资源时,数据直接存储到项目的资源 (.resx) 文件中。字符串只能作为嵌入的资源进行存储。有关更多信息,请参见链接的资源与嵌入的资源和.Resx 文件格式中的资源。编辑资源关联用于编辑各个资源的默认应用程序之后,资源设计器就允许您在开发过程中添加和修改项目资源。右击“解决方案资源管理器”中的“属性”,然后单击“打开”,再单击项目设计器中的“资源”选项卡,可以访问资源设计器。有关更多信息,请参见“项目设计器” ->“资源”页。下面的图示显示了资源设计器菜单选项:
若要编辑嵌入的资源,必须直接处理 .resx 文件来操作每个字符或字节。这就是为什么在开发过程中将复杂文件类型存储为链接的资源更为方便的原因。可以使用 二进制编辑器 以十六进制或 ASCII 格式在二进制级别上编辑资源文件(包括 .resx 文件)。可以使用 图像编辑器 编辑作为链接的资源存储的图标、光标以及 .jpeg 和 GIF 文件。您还可以选择使用其他应用程序作为这些文件类型的编辑器。有关更多信息,请参见在资源编辑器中查看和编辑资源。
将资源编译为程序集当您生成应用程序时,Visual Studio 会调用 工具,将应用程序资源转换为称为 Resources 的内部类。此类包含在 文件中,而该文件嵌套在“解决方案资源管理器”中的 文件下。Resources 类将所有项目资源封装到静态只读的 get 属性中,作为在运行时提供强类型资源的方式。当通过Visual C# IDE 进行生成时,所有封装的资源数据(包括嵌入到 .resx 文件中的资源和链接的文件)都被直接编译到应用程序程序集(.exe 或.dll 文件)中。换句话说,Visual C# IDE 总是使用 /resource 编译器选项。如果从命令行进行生成,则可以指定 /linkresource 编译器选项,以便将资源部署为主应用程序程序集之外的单独文件。这是一种高级应用方案,仅在某些很少见的情况下才需要使用。将资源与主应用程序程序集分开部署的一种更为常见的方案是使用附属程序集,如下所述。在运行时访问资源若要在运行时访问资源,只需像引用任何其他类成员一样引用该资源即可。下面的示例显示如何检索名为 Image01 的位图资源。请注意,资源类位于名为 <项目名称>.Properties 的命名空间中,因此,要么每个资源都使用完全限定名,要么在作为资源类访问来源的源文件中添加适当的 using 指令。 bitmap1 =01;在内部,get 属性使用 ResourceManager 类创建对象的新实例。有关更多信息,请参见应用程序中的资源和资源文件生成器()。附属程序集中的资源如果您正在创建需要本地化(翻译)为多种语言的应用程序,可以将每组特定于区域性的字符串作为资源存储在它本身的附属程序集中。当您分发应用程序时,其中应包含主应用程序程序集和任何相应的附属程序集。然后您可以在不重新编译主应用程序程序集的情况下,添加其他附属程序集或修改现有的附属程序集。有关更多信息,请参见创建附属程序集和定位和使用特定区域性的资源。
添加或移除资源如果手动将资源添加到项目中(例如,在“解决方案资源管理器”中添加.resx 文件),则新文件中的资源将从您使用“项目设计器”的“资源”页创建的资源中分开。如果双击新的 .resx 文件,将打开一个单独的“资源设计器”窗口,并在设置网格中显示此文件的内容。当添加新的 .resx 文件时,将会有一个提示消息询问:“要为此文件启用强类型资源生成吗?”单击“是”将为新资源提供强类型资源支持,这是一项编译时功能,用于通过创建包含一组静态的只读 (get) 属性的类来封装对资源的访问。这提供了一种使用资源的首选方式,无需再使用ResourceManager 类的 GetString 和 GetObject 方法。有关更多信息,请参见 StronglyTypedResourceBuilder。有关资源设计器如何生成强类型资源的信息,请参见管理应用程序资源。
添加现有资源1. 在“解决方案资源管理器”中选定一个项目,然后在“项目”菜单中单击“属性”。2. 选择“资源”选项卡。3. 在“资源设计器”工具栏上,指向“添加资源”,单击箭头,再单击“添加现有文件”。4. 在“将现有文件添加到资源中”对话框中,浏览到包含要添加的资源的文件(.bmp、.ico、.wav 等),然后单击“打开”。该文件将添加到 Resources 目录,并且“资源设计器”将为所添加的资源类型打开相应的“类别”窗格。5. 对于文件资源,可以在“属性”窗口中设置文件的 Encoding 和 FileType 属性(可选)。添加新资源1. 在“解决方案资源管理器”中选定一个项目,然后在“项目”菜单中单击“属性”。2. 选择“资源”选项卡。3. 在“资源设计器”工具栏上,指向“添加资源”,单击箭头,然后单击要创建的资源类型。4. 在“添加新资源”对话框中,输入新资源的名称,然后单击“添加”。文件将添加到 Resources 目录,并且将为所添加的资源类型打开相应的资源编辑器。5. 对于文件资源,可以在“属性”窗口中设置文件的 Encoding 和 FileType 属性(可选)。
移除资源1. 在“解决方案资源管理器”中选定一个项目,然后在“项目”菜单中单击“属性”。2. 选择“资源”选项卡。3. 从“类别”列表中选择一个资源类型。4. 选择要移除的资源。5. 在“资源设计器”工具栏上,单击“移除资源”。该资源将从“资源设计器”中移除,但不会从 Resources 目录中移除它。


发布评论