我正在尝试在 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;
}