我試圖在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;
}
感謝。我需要做一個小小的改變,因爲繪畫事件似乎沒有收到真正的「_drag」值,所以永遠不會繪製,但你足夠接近我。 – fluent 2011-02-02 10:53:10