5

在 WPF 中管理大量图像(10,000+)的最佳方法是什么?这是一个类似于这样的 2d 瓦片地图编辑器: //www.mapeditor.org/

目前我有一个包含所有图块作为图像的画布和一个列表框,其中包含可供选择的不同图像。每个图块都作为子项添加到画布中,然后存储在列表中以供以后访问。通过将磁贴的 Source 属性设置为在列表框中选择的属性,您可以在画布中进行绘制。它适用于大约 50x50 的平铺地图,但任何高于此的内容都会导致加载延迟,通常应用缓慢。

对此有何建议?QT 可能比 wpf 更适合吗?

提前致谢

4

1 回答 1

6

查看实施虚拟化面板系列文章。

虚拟化面板很有效,因为:

  • 只有显示的元素(以及边框周围的一些额外元素以实现平滑滚动)在内存中(并被渲染)。

  • 元素被重复使用,而不是被重复创建和丢弃 - 旧单元格只需填充新内容(提供新 DataContext)并在新位置使用。

您也可以尝试为此使用 WPF 的 DataGrid,它支持开箱即用的虚拟化,本质上就是您想要做的。

如果实施得当,WPF 肯定能够做到这一点(如果你可以在 JavaScript 中做到这一点,那么你当然也可以在 WPF 中做到这一点)。

于 2011-10-05T18:10:59.497 回答