C# 如何从资源中读取图像作为流?

C# 如何从资源中读取图像作为流?,c#,resourcemanager,C#,Resourcemanager,如何从C桌面应用程序的\Resources文件夹中获取作为流的特定图像 在Visual Studio中,我将图像导入到\Resources文件夹中,它具有文件名和完整路径属性。我想用它的名字 我的目标是这样做: System.IO.Stream contentStream = get the image stream from \Resources System.Net.Mail.LinkedResource logo = new LinkedResource( contentStream);

如何从C桌面应用程序的\Resources文件夹中获取作为流的特定图像

在Visual Studio中,我将图像导入到\Resources文件夹中,它具有文件名和完整路径属性。我想用它的名字

我的目标是这样做:

System.IO.Stream contentStream =  get the image stream from \Resources
System.Net.Mail.LinkedResource logo = new LinkedResource( contentStream);

你有几个简单的选择

/Resources文件夹并不完全是一个特殊文件夹。您仍然需要在解决方案资源管理器中选择要嵌入程序集的任何项,然后从“属性”窗口中指定其生成类型为“嵌入资源”。然后使用ResourceManager.GetStream以流的形式检索内容

不过,对于大多数情况,更简单的方法是使用“项目属性设计器”窗口添加Resources.resx文件,然后将所需文件添加到资源设计器。例如,您可以添加如下图像:


Visual Studio将为您生成代码,以便以这种方式检索嵌入的文件。

您有几个简单的选项

/Resources文件夹并不完全是一个特殊文件夹。您仍然需要在解决方案资源管理器中选择要嵌入程序集的任何项,然后从“属性”窗口中指定其生成类型为“嵌入资源”。然后使用ResourceManager.GetStream以流的形式检索内容

不过,对于大多数情况,更简单的方法是使用“项目属性设计器”窗口添加Resources.resx文件,然后将所需文件添加到资源设计器。例如,您可以添加如下图像:


Visual Studio将为您生成代码,以检索以这种方式嵌入的文件。

此时,我不理解此文档,特别是类型示例是如何涉及的,以及资源名称在何处:我假设示例仅使用当前类查找程序集,但他们从何处获得名称SplashScreen?此时,我不理解这个文档,特别是类型示例是如何涉及的,以及资源名称在哪里:我假设示例只是使用当前类来查找程序集,但是它们从哪里获得名称SplashScreen?谢谢。我在尝试实例化ResourceManager时陷入了困境。默认的baseName是什么,它是提供给构造函数的第一个参数?如果我进入Project Properties-Resources,我可以在那里看到嵌入的图像。我遇到了以下错误:{找不到任何适合于指定区域性或非特定区域性的资源。请确保\resources.resources\在编译时正确嵌入或链接到assembly\foo\中,或者确保所需的所有附属程序集……当我采取第一种直接使用ResourceManager的方法时,我经常不得不胡乱处理。请阅读f或者更多帮助。我更喜欢在大多数情况下使用Resources designer;它更易于管理,而且您不必担心名称是否正确;VS会为您执行此操作。如果您想自己执行此操作,请使用Resources designer,然后查看生成的Resources.designer.cs文件以了解它是如何构造资源的sManager.Thank,我查看了Resources.Designer.cs文件,现在取得了一些进展。Thank。我在尝试实例化ResourceManager时陷入了困境。提供给构造函数的第一个参数默认baseName是什么?如果我进入Project Properties-Resources,我可以在那里看到嵌入的映像。我遇到了以下错误:{找不到任何适合于指定区域性或非特定区域性的资源。请确保\resources.resources\在编译时正确嵌入或链接到assembly\foo\中,或者确保所需的所有附属程序集……当我采取第一种直接使用ResourceManager的方法时,我经常不得不胡乱处理。请阅读f或者更多帮助。我更喜欢在大多数情况下使用Resources designer;它更易于管理,而且您不必担心名称是否正确;VS会为您执行此操作。如果您想自己执行此操作,请使用Resources designer,然后查看生成的Resources.designer.cs文件以了解它是如何构造资源的谢谢,我查看了Resources.Designer.cs文件,现在取得了一些进展。