C# 为什么当我用鼠标拖动pictureBox中的图像时,它会将图像恢复到原始大小?
在我的代码中,我使用鼠标滚轮调整pictureBox中图像的大小C# 为什么当我用鼠标拖动pictureBox中的图像时,它会将图像恢复到原始大小?,c#,winforms,C#,Winforms,在我的代码中,我使用鼠标滚轮调整pictureBox中图像的大小 void pictureBox1_MouseWheel(object sender, MouseEventArgs e) { CalculateNewSizeFactor(e.Delta); if (pictureBox1.Image != null) pictureBox1.Image.Dispose(); pictureBox1.Image
void pictureBox1_MouseWheel(object sender, MouseEventArgs e)
{
CalculateNewSizeFactor(e.Delta);
if (pictureBox1.Image != null) pictureBox1.Image.Dispose();
pictureBox1.Image = null;
pictureBox1.Image = ResizeImage(new Size((int)(img.Width * factor), (int)(img.Height * factor)));
}
public Image ResizeImage(Size size)
{
return new Bitmap(img, size);
}
private void CalculateNewSizeFactor(int delta)
{
if (delta > 0 && factor < 2)
{
factor *= increment;
}
else if (delta < 0 && factor > 0.25)
{
factor /= increment;
}
}
存在一些问题:
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
panning = true;
}
}
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
if (checkBox1.Checked)
{
panning = true;
}
startingPoint = new Point(e.Location.X - movingPoint.X,
e.Location.Y - movingPoint.Y);
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
panning = false;
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
if (panning)
{
e.Graphics.Clear(Color.White);
e.Graphics.DrawImage(img, movingPoint);
}
}