我目前正在开发一个可视化工具,吸引了WPF的形状,如路径,椭圆形等,在画布上。我已经实施了一种虚拟化方法,在这种方法中,Shapes根据其可见性正在销毁和创建。但是,即使只有600个椭圆可见,应用程序似乎也很困难。WPF性能:显示数千路径/形状的在Canvas
我的选择是什么来加快速度?我正在考虑将分组的Shapes(假设每次500个)呈现为透明位图,并且只将它们绘制在Canvas上。但我不知道这是否是一个好主意......从我所收集这需要某种形式的黑客攻击,如果应用的转换:关于使用大WritableBitmap
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);
什么?这是另一种方法吗?
我目前正在使用这种方法:一个VirtualPath类,存储路径数据并返回一个WPF System.Windows.Shapes.Path一旦其边界可见。 – kitsune 2009-09-29 08:09:00
感谢您指点我StreamGeometry,我还不知道这个类 – kitsune 2009-09-29 08:09:53
@kitsune,你有没有完成你的“虚拟路径,尽快返回路径可见”的伎俩?我想我可以从我的一个项目中受益 – 2012-02-13 17:43:45