2011-01-06 98 views
0

我正在制作一个代表图像的类,并且在Windows中将图像存储在ImageList控件中。该类将用于将图像轻松添加到其他控件(如ListView或Buttons),或者仅用于在屏幕上绘图。我的问题是:什么是这样的适当的设计?每个图像应该有一个图像的ImageList,还是应该Image类的所有实例都有一个巨大的ImageList,或者什么?我不太了解Windows类的内部,所以我不知道ImageList类有多“重”,但如果它相对便宜,我倾向于“每个实例都有它自己的图像列表”。你有什么建议?面向对象的图像ImageList设计

回答

1

一般来说,我会在两者之间推荐一些东西。

对于每个图像都有一个不同的图像列表似乎很愚蠢。它们旨在存储图像集合,并使这些集合的管理更加高效,而不是仅仅保存单个图像。

然后,尝试为所有图像使用一个巨大图像列表有一些缺点。即,图像列表中的所有图像必须具有相同的尺寸。如果这不适用于您的图像,则需要将它们放在单独的图像列表中。

但更重要的是,我不确定你为什么要考虑首先创建一个包含图像列表的图像类。除非你要存储图标/游标或者需要担心蒙版,为什么不把代码封装到代表图像的位图呢?无论如何,你将会传递给图像列表的“添加”方法。

+0

谢谢,这似乎是正确的方式来做到这一点,我不知道为什么我没有想到它。 – 2011-01-06 17:01:40