3

我敢肯定这不会像我目前发现的那么复杂!

我正在尝试呈现用户控件的水平列表。他们会有很多。因此,某种形式的虚拟列表将是可取的。

每个用户控件都将包含一个图像并且可以选择。

在 Android/Flex/iOS 中,这对于他们的 List Adapters、List Item Renderers 等来说是微不足道的……但是在 Win 表单中它确实看起来非常棘手。

我查看了 ObjectListView 将视图模式设置为 Tile。但是似乎没有一种方法可以水平渲染。

我试过用我的用户控件填充流布局。但是在加载图像时,内存使用量会飙升。

4

2 回答 2

1

您可以使用 FlowLayoutPanel 容器控件并将其 WrapContents 设置为 false 并将 FlowDirection 设置为 LeftToRight(这是默认设置)。...而且,可能,AutoScroll 为真。


编辑

至于内存不足,请考虑通过处理 Scroll 事件并根据需要创建/处置控件来模拟虚拟化。

于 2012-12-03T15:16:11.390 回答
0

派生您自己的图像控件Control并覆盖OnPaint以自己绘制图像。为图片的路径或名称添加属性,但不要将图片本身存储在控件中。谷歌自定义控件 c#

为图像使用缓存。一个很好的数据结构是循环缓冲区。这有助于在内存中仅保留有限数量的图像。

于 2012-12-03T15:55:16.013 回答