小さな画像を左側から画面、右側に移動しようとしています。
ユーザーコントロールのスタイルを次のように設定しました。
this.SetStyle(ControlStyles.Opaque, true);
this.SetStyle(ControlStyles.UserPaint, true);
this.SetStyle(ControlStyles.ResizeRedraw, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
OnPaint
ハンドラーで、オブジェクトをインスタンスに描画します。これは画面外のバッファーであり、1回の呼び出しを使用しBufferedGraphics
て結果を参照にBitBltします。e.Graphics
だから、私は本ですべてをやったようで、非常に滑らかなちらつきのない描画をしました、そしてそれでも私はオブジェクトが少し途切れているのを見ることができます。
したがって、基本的に2つの可能性が残っています。呼び出しているタイマーが.Invalidate(DirtyRect)
一定の間隔で正確に起動せず、オブジェクトが途切れているように見えるか、BitBltが期待どおりに機能しないかのいずれかです。
誰かが何が問題になるのか考えていますか?
更新:考え直してみると、吃音やちらつきというよりは、引き裂くように見えます。オブジェクトが最後の数ピクセルを見逃しているように見えることがあるためです。VSYNCを利用する可能性を検討します。