在WPF中渲染大型瓷砖地图的问题

5
什么是在WPF中管理大量图像(10,000+)的最佳方法?这是一个类似于http://www.mapeditor.org/的2D瓷砖地图编辑器。
目前,我有一个画布和所有瓷砖作为图像以及包含不同图像的列表框。每个瓷砖都被添加到画布中,并存储在列表中以供稍后访问。通过将所选的列表框中的源属性设置为一个瓷砖,您可以在画布上绘制。对于大约50×50个瓷砖地图,它效果良好,但任何超过该数量的地图都会导致加载延迟,通常会使应用程序变慢。
有什么建议吗?也许QT比wpf更合适?
提前感谢。
1个回答

6

请查看实现虚拟面板系列文章。

虚拟面板非常高效,因为:

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

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

您还可以尝试使用WPF的DataGrid进行此操作,它支持开箱即用的虚拟化,并且本质上就是您要做的事情。

如果正确实现,WPF肯定能够做到这一点(如果您可以在JavaScript中做到这一点,那么您肯定也可以在WPF中做到这一点)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接