C# DrawingGroup.ClipGeometry洞察(性能)

C# DrawingGroup.ClipGeometry洞察(性能),c#,wpf,rendering,gdi,C#,Wpf,Rendering,Gdi,我正在重构一些使用System.Drawing类和GDi的代码,以便绘制复杂的地图图像。图像由线和多边形等对象组成。 为了剪裁对象,我们使用了一个剪裁算法的实现,首先检查对象是否在位图的边界内。如果它相交,对象将被剪裁 我们现在想用WPF方法绘制相同的地图图像。我正在使用drawinggroups创建几何图形。DrawingGroup提供了添加ClipGeometry的可能性,如: TileSize = new RectangleGeometry(new Rect(tileOrigin, ne

我正在重构一些使用System.Drawing类和GDi的代码,以便绘制复杂的地图图像。图像由线和多边形等对象组成。 为了剪裁对象,我们使用了一个剪裁算法的实现,首先检查对象是否在位图的边界内。如果它相交,对象将被剪裁

我们现在想用WPF方法绘制相同的地图图像。我正在使用drawinggroups创建几何图形。DrawingGroup提供了添加ClipGeometry的可能性,如:

 TileSize = new RectangleGeometry(new Rect(tileOrigin, new Size(Width, Height)));
 mapDrawing.ClipGeometry = TileSize;
结果看起来不错,我“感觉”到性能上没有什么不同。问题是,我很难衡量这一点。我可以肯定地说,用我们的算法剪裁物体需要多长时间,但我无法用ClipGeometry测量剪裁需要多长时间。我猜当UI开始渲染图形时,剪辑就完成了

我的问题是:

  • 如何使用WPF ClipGeometry测量剪裁所需的时间
  • 有人知道ClipGeometry是如何进行剪裁的吗

谢谢你的输入

尝试使用应用程序时间轴,这就是我正在做的。但我很难确定通过ClipGeometry进行的精确剪裁何时完成。。。。我认为渲染时间稍微长一点,但由于没有执行剪裁算法,因此使用的CPU时间更少。但我不是100%确定,因为我们在这里讨论的是细微差别。这就是为什么我问是否有人对剪贴测量的处理有更多的见解(是由UI还是Renderthread完成的?在处理所有图形之后还是之前?)。。。无论如何,谢谢你的回复!