0

ピクチャボックスをwinform上でスムーズに動かそうとしていますが、滑らかに見える唯一の方法は、タイマーを使用してピクセル速度を1マイクロ秒あたり1ピクセルに下げることです。それでもピクチャボックスの動きは遅くなります。

移動中の滑らかさのレベルを維持しながら、ピクチャボックスをより速く移動させるためにマイクロ秒を使用するにはどうすればよいですか?

4

2 に答える 2

4

まず、あなたが何を求めているのかわからないので、これが役立つかもしれません。

タイミングは難しい問題です。まず、すべての.netタイマーはミリ秒の解像度であり、それ以下では、ある種の高解像度タイマーを使用しないと、システムが何を返すかが保証されません。.net ストップウォッチは、基礎となる高解像度タイマーを使用しますが、コールバック メカニズムがないため、別のスレッドとポーリングを使用して自分自身を構築する必要があります。そうは言っても、別の方法でアニメーション化してから、ビット blt を使用したり、低レベルのペイントをオーバーロードしたりして、ピクチャ ボックスを移動することを検討することをお勧めします。

于 2012-10-03T22:25:54.913 に答える
1

フォーム上でコントロールを移動するのはかなり遅い操作だと思います。したがって、タイマーが十分に細かく設定されていないわけではありません。とにかくちらつきます。ピクチャ ボックスを移動する代わりに、ペイントイベントでピクチャ ボックスにあるものをフォームの背景にペイントし、タイマーが作動したときに描画する位置を変更することができます。このようにして、ダブル バッファリングなどを利用して、アニメーションをよりスムーズにすることができます。この場合、40ms (25Hz リフレッシュ) のような比較的大きな間隔でも十分であることがわかります。

于 2012-10-04T00:09:41.913 に答える