単一のポリラインを含むPathGeometryがあり、一定の間隔でラインに新しいポイントを追加します(波形をプロットするため)。Perforatorツールを使用すると、線にポイントを追加するたびに、WPFがPathGeometry全体を「ダーティ」としてマークし、形状全体が再レンダリングされることがわかります。
私はそれが単一のピクセルだけを再描画することを望みました。それを達成する方法はありますか?
単一のポリラインを含むPathGeometryがあり、一定の間隔でラインに新しいポイントを追加します(波形をプロットするため)。Perforatorツールを使用すると、線にポイントを追加するたびに、WPFがPathGeometry全体を「ダーティ」としてマークし、形状全体が再レンダリングされることがわかります。
私はそれが単一のピクセルだけを再描画することを望みました。それを達成する方法はありますか?
短い答えはノーです..
WPF は、現在のパス値も変更された状況を考慮に入れるため、変更時にジオメトリ全体をダーティにする点で正しいです。
これを分解すると、パスの代わりに線のリストを使用できます..しかし、
それは、比率を維持するために、ユーザーがプロット領域のサイズを変更するたびに線の値を更新する必要があることを意味します..
したがって、これを処理するには、 「ユーザーがサイズを変更した場合 - すべての行をダーティにする」というコードを書くことになるでしょう..
もう 1 つの問題は、別の行を追加するときです
。プロット領域に収まるようにすべての行を絞り込みたい場合があります。そのため、
「新しい行を追加すると、すべての行が汚れている」
というコードを書くことになるでしょう。
これにより、パス ジオメトリの動作がミニエンジンと 1 対 1 で類似するようになりました。
新しい行でサイズ変更や再調整を処理する必要がない、または処理したくない場合は、
単に行のリストを使用してください。