私は現在、キャンバス上にパス、楕円などの 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 を使用するのはどうですか? それは別のアプローチでしょうか?