TLDR:ImageList vs资源:如何在Winforms中组织图像?
在项目中组织图像的最佳模式是什么?这是常见的,并建议在启动时创建一个ImageList
,并通过其索引访问每个图像,或者支持要走的路?无论如何,请解释原因。
详细的问题:
我目前工作的一个软件,其已经开发了相当一段时间了。它部分用Visual Basic编写,它主要依靠ImageList
类来组织软件每个部分中的所有图像。在应用程序开始时,ImageList
通过巨大的数组创建,其中包含所有可以访问的图像文件的所有名称。无论何时您需要图像,您都需要访问此对象,并通过列表中图像的索引获取图像。
我知道这在过去可能有部分用处,因为visual studio中的资源并不便于使用,有些控件仅适用于这些列表,例如ToolBar
(取代为ToolStrip
)类有一个Poperty ImageList
,每个按钮只在ImageList
中获取其图像的索引。
我觉得应该放弃这个庞大的ImageList
,并且应该慢慢迁移到在资源中组织这些图像,但我不是主要的.NET开发人员,也不太了解winforms及其最佳实践。
就像在TLDR中提出的那样:在项目中组织图像的最佳模型是什么?这是常见的,并建议在启动时创建一个ImageList
,并通过其索引访问每个图像,或者支持要走的路?无论如何,请解释原因。
意见的问题是题外话。 Winforms虽然仍然支持,但现在还没有开发。就是这样。 – LarsTech
ImageList应仅用于为ListView和TreeView提供图像,其深层复制行为使其无法管理大量图像集合。你应该使用'List'。不要忘记在不再需要时处理()它们。 –