2

まず最初に、私は WPF のパフォーマンスに関する記事やフォーラムを非常に多く、非常に多く、非常に多く見てきました。これは別の記事の再投稿に近いものになると思いますが、ご容赦ください。

まず、WPF で 2D CAD プログラムを作成しています。もともと私の考えは、Shape オブジェクトを使用し、組み込みのヒット テストなどを使用することでした。画面に 5000 以上のライン/アークを表示する必要があるため、これではパフォーマンスが十分ではありませんでした。

私が試したさまざまなことは次のとおりです。

  • Shape オブジェクトを使用し、それらを子として Canvas に追加する

  • Canvas の OnRender メソッドをオーバーライドして DrawingContext を使用する

  • 直接 VisualHost を作成し、DrawingVisuals を使用して、DrawingVisual オブジェクトが変更された場合にのみ更新されます。

どの状況でも、私はほぼ同じ運命をたどります。2000 行前後で、動きが遅れ始めます。具体的には、行のグループを選択して移動するように指示できます。マウスの動きに反応して動きます (ほとんどの CAD プログラムと同様)。これらのオブジェクトが追いつくのを待つには、かなりの遅延があります。

私はここで途方に暮れています。見つけることができるすべての記事を読みましたが、まだ解決策が見つかりません。私の次のオプションは、必要なことを達成するために GDI+ に戻ることですが、可能であれば WPF ソリューションを探しています。

ご協力いただきありがとうございます。

4

0 に答える 0