WriteableBitmapに関する簡単なMSDNの例があります。
これは、マウスが押されてWPF -Image Control上を移動しているときに、1ピクセルを更新するだけで、カーソルを使用してフリーハンドの線を描画する方法を示しています。
writeableBitmap.Lock();
(...set the writeableBitmap.BackBuffers pixel value...)
writeableBitmap.AddDirtyRect(new Int32Rect(column, row, 1, 1));
writeableBitmap.Unlock();
今、私はマウスポインタを非常に速く動かしたときの次の動作を理解しようとしています。
画像/ビットマップのサイズが比較的小さい場合(800:600ピクセルなど)、最後に描画されたピクセルは常にマウスポインタの位置と「同期」されます。つまり、遅延がなく、マウスの動きに対する反応が非常に速くなります。
ただし、ビットマップが大きくなる場合(1300:1050ピクセルなど)、遅延が発生する可能性があります。最後に描画されたピクセルは、移動するマウスポインターの後ろに常に少し遅れて表示されます。
したがって、どちらの場合も1つのピクセルのみが「」で更新されるAddDirtyRect
ため、反応速度はビットマップサイズに依存しないはずです!?ただし、サイズが大きくなると、Writeablebitmapの速度が低下するようです。
writeableBitmap.Unlock();
または、メソッドで指定された長方形の領域だけでなく、ビットマップ全体が呼び出しのたびにグラフィックデバイスに転送されAddDirtyRect
ますか?
フリッツ