将图片框重新定位到其默认位置 C#
Re-position Picturebox to its Default Position C#
我正在使用 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);
}
如果您的程序的初始状态正常,那么 movingPoint = Point.Empty
应该可以解决问题。您还应该调用 pictureBox1.Invalidate()
重新绘制图片框:
private void yourButton_Click(object sender, EventArgs e)
{
movingPoint = Point.Empty;
pictureBox1.Invalidate();
}
我正在使用 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);
}
如果您的程序的初始状态正常,那么 movingPoint = Point.Empty
应该可以解决问题。您还应该调用 pictureBox1.Invalidate()
重新绘制图片框:
private void yourButton_Click(object sender, EventArgs e)
{
movingPoint = Point.Empty;
pictureBox1.Invalidate();
}