我目前正在開發一個可視化工具,吸引了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