1

我正在尝试将图像添加到我的树节点 ( ImageList.Add()),但只是想不出一个好的方法。

我已经阅读了我应该使用的 MSDN 帮助System.Drawing.Image.FromFile(path)。但不能只是在某处获取文件。我正在构建一个 DLL,并希望它是一个文件,没有与它一起复制的位图。

所以我读过我应该将图像文件添加到项目中,并用构建操作将它们标记为“资源”。好的,但是我在哪里可以得到它们???我看到人们在 XAML 文件中使用它,但我没有。

看到人们使用Resources.SomeName,但找不到那些Resources类。

所以....我该怎么做?我已将文件标记为资源,只需将它们添加到 ImageList。

顺便说一句,我很想使用相对于Code File将图像添加到 ImageList 的路径。但如果不可能,仅相对于程序集根。

4

1 回答 1

1

如果要使用文件路径,对于项目中的项目,必须将“复制到输出目录”属性设置为“始终复制”或“如果较新则复制”,否则它将不在 bin 文件夹中,然后您将尝试将路径传递给不存在的文件。在这种情况下,构建操作并不是那么重要。

如果您想使用已编译的资源,并通过 Resources 对象引用它们,请参阅我的其余答案。我假设您使用的是 Visual Studio,2005 或更高版本。

要将图像作为已编译资源添加到干净的 Windows 窗体项目中,以便您可以通过Resources.SomeName执行以下操作来访问它:

  1. 在解决方案资源管理器中,在 windows 窗体项目(我的称为 WinFormsApplication1)下,展开“属性”文件夹。默认情况下,此文件夹应包含:AssemblyInfo.cs、Resources.resx、Settings.settings。
  2. 双击 Resources.resx 文件。这将为它打开一个编辑器。您可能会看到一个字符串表,其中包含“名称”、“值”、“注释”列。
  3. 单击“添加资源”按钮上的下拉箭头,然后选择“现有文件”,这将允许您浏览到要添加的图像。
  4. 您现在应该看到图像出现在各种画廊中。我的名字叫 TestImage

现在,当您编辑代码(我的是 Fom1.cs)时,我可以将图像作为 System.Drawing.Bitmap 作为 Properties.Resources.TestImage 访问。

在我看来,这是将图像编译到应用程序中的最佳方式。如果您想要用户添加的图像,您需要使用 OpenFileDialog 或类似的东西来获取您的文件路径。然后 Image.FormFile() 将是您想要的。

于 2013-04-16T22:23:12.373 回答