将Picturebox重新定位到其默认位置C#

时间:2015-10-14 20:40:24

标签: c# .net image winforms picturebox

我正在使用WinForms。在我的WinForms应用程序中,我有一个图片框。我在图片框中有一个图像。此代码使我能够在图片框中移动图像。如何在按钮单击事件上将图像重新定位回其默认位置?

    private Point startingPoint = Point.Empty;
    private Point movingPoint = Point.Empty;
    private bool panning = false;

    private void pictureBox1_MouseDown_1(object sender, MouseEventArgs e)
    {
        if (On_Radio.Checked == true)
        {

            panning = true;
            startingPoint = new Point(e.Location.X - movingPoint.X,
                                      e.Location.Y - movingPoint.Y);
        }

    }



    private void pictureBox1_MouseMove_1(object sender, MouseEventArgs e)
    {
        if (panning)
        {
            movingPoint = new Point(e.Location.X - startingPoint.X,
                                    e.Location.Y - startingPoint.Y);
            pictureBox1.Invalidate();
        }
    }

    private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
    {
        panning = false;
    }

    private void pictureBox1_Paint_1(object sender, PaintEventArgs e)
    {

        e.Graphics.Clear(Color.White);
        e.Graphics.DrawImage(pictureBox1.Image, movingPoint);         
    }

1 个答案:

答案 0 :(得分:1)

如果程序的初始状态正常,那么movingPoint = Point.Empty就可以了。您还应该致电pictureBox1.Invalidate()重新绘制图片框:

private void yourButton_Click(object sender, EventArgs e)
{
    movingPoint = Point.Empty;
    pictureBox1.Invalidate();
}