mousemove イベントでピクチャボックスの周りに図形をドラッグしようとしていますが、スムーズに移動するのに苦労しています。画像ボックスには背景として読み込まれた画像があり、マウスをクリックしてドラッグすると、グラフィックオブジェクトが画像の上に円をドラッグしたいと思います。
マウスが動くたびに元の画像のクローンを作成し、画像ボックスをリロードすることで機能していますが、これを実現するにはより良い方法である必要があるようです。
追加されたグラフィックスが画像に残るたびに元のビットマップを再読み込みせずに、ペイント アプリケーションに似たトレイルを作成します。
毎回イメージ全体をリロードせずに以前の描画をクリアするにはどうすればよいですか? どんな助けでも感謝します。
private void picCanvas_MouseMove(object sender, MouseEventArgs e)
{
if (_drag)
{
picCanvas.Image = (Bitmap)_original.Clone();
Graphics g = Graphics.FromImage((Bitmap)picCanvas.Image);
g.DrawEllipse(_whitePen, e.X, e.Y, 10, 10);
picCanvas.Invalidate();
}
}
private void picCanvas_MouseDown(object sender, MouseEventArgs e)
{
_drag = true;
}
private void picCanvas_MouseUp(object sender, MouseEventArgs e)
{
_drag = false;
}