我正在做的项目需要渲染一个 ESRI 形状文件,它可以有大量的多边形/形状。当我将所有这些多边形、线、点等添加到我正在使用的 Canvas 时,它变得非常慢。
为了在 map 上绘制形状,我创建了一个 Path 对象,并将它的 Data 属性设置为 StreamGeometry。我最初使用的是 Polygon,但根据 MSDN,StreamGeometry 的重量要轻得多。
如何提高性能?将成品转换为位图或 VisualBrush 有帮助吗?有没有更有效的方法将所有这些形状渲染到 Canvas 上?
编辑:我忘了提到这需要能够在部分信任 XBAP 中工作。
最佳答案
无需求助于 GDI,您只需要在 WPF API 中向下移动一层并将您的几何图形组合成更少的视觉效果。 Pablo Fermicola 有一些关于 picking which layer 的有用信息根据您的性能需要使用。
我设法使用 DrawingVisual 获得了出色的性能和 DrawingContext类(class)。
关于wpf - 如何在 Canvas 上使用大量多边形提高性能和内存使用率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/150151/