私はwinformにタイマーコントロールを追加しました(VS2017を使ってドラッグ&ドロップするだけです)。 このタイマーコントロールは、フォーム上で左から右に画像を移動します。有効になったとき。winformに流暢に画像を移動
private void timer1_Tick(object sender, EventArgs e)
{
int x = PictureBox1.Location.X + 1;
if (x < 400)
PixtureBox1.Location = new Point(x, 100);
}
問題は、この移動操作が流動的ではなく、その動きが不安定であることです。私はwinformに固執しなければならず、この不安定な動きについて何ができるのだろうか?
間隔を最小限にしようとした場合や、変位を大きくしようとしたが、揺れが続いた場合。
どのような間隔を使用していますか? –
Winformsでは、モニターの更新と同期できないため、流暢ではありません。場合によっては、浮動小数点数で追跡することもできますが、例は1ピクセルにつき1ピクセルしか移動しません。 - 揺れとちらつきの違いに注意してください。後者はダブルバッファリングによって無効になる可能性があります。 – TaW
確かに、Winformsで少し難しい縫い目をしています。現在は、比較的滑らかで、間違いなく適切なスレッド遅延(確かではない)、またはティックタイムでのダイナミックな動きが良いかもしれません。そこに解決策を見つけることを望んでいましたが、それまでのすべての最適化では、それほど改善されていませんでした。解決策は不可能かもしれません。 – user3800527