我目前正在开发一种可视化工具,可以在 Canvas 上绘制 WPF 形状,例如路径、椭圆等。我已经实现了一种虚拟化方法,其中根据形状的可见性动态销毁和创建形状。然而,即使只有大约 600 个椭圆可见,该应用程序似乎也很困难。
我有哪些加快速度的选择?我正在考虑将分组的形状(假设一次 500 个)渲染为透明位图,并且只在画布上绘制这些形状。但我不知道这是否是个好主意......据我所知,如果应用了转换,这需要某种破解:
VisualBrush shapeBrush = new VisualBrush(shape);
DrawingVisual drawingVisual = new DrawingVisual();
DrawingContext drawingContext = drawingVisual.RenderOpen();
using (drawingContext)
{
drawingContext.DrawRectangle(shapeBrush, null, new Rect(new Point(0, 0), new Point(actualWidth, actualHeight)));
}
renderTarget.Render(drawingVisual);
使用大的 WritableBitmap 怎么样?那会是另一种方法吗?