Я пытаюсь перетащить фигуру вокруг графического окна при событии перемещения мыши, но изо всех сил пытаюсь заставить его двигаться плавно.В графическом окне изображение загружено в качестве фона, и я хотел бы, чтобы графический объект перетаскивал кружок поверх изображения при щелчке мышью и перетаскивании.
У меня это работает путем создания клонаИсходное изображение каждый раз, когда мышь перемещается и перезагружает окно рисунка, но кажется, что это должен быть лучший способ добиться этого.
Без перезагрузки исходного растрового изображения каждый раз, когда любая добавленная графика остается на изображении, создавая след, которыйбольше похоже на приложение для рисования.
Как очистить предыдущие рисунки, не перезагружая все изображение каждый раз?Любая помощь приветствуется.
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;
}