调整 PictureBox 中图像的大小,直到它是原始图像的大小

Resize an image in a PictureBox until it is the size of the original image

我想要 PictureBox 中的图像,它会根据 window 的大小自动调整,但不大于原始图像。虽然 PictureBoxSizeMode.Zoom 几乎做到了这一点,但当 PictureBox 大于图像时,它会导致图像像素化。我目前正在调整大小时执行此代码:

if (pBox.Height * pBox.Height < pBox.Image.Width * pBox.Image.Height) pBox.SizeMode = PictureBoxSizeMode.Zoom;
else pBox.SizeMode = PictureBoxSizeMode.CenterImage;

虽然这在大多数情况下都有效,但有时图像不会恢复为缩放:

有没有更好的方法来解决这个问题?

如何将最大尺寸设置为图像尺寸:

pictureBox1.MaximumSize = pictureBox1.Image.Size;

结合:

pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;

您应该使用 "if (pBox.Width * pBox.Height < pBox.Image.Width * pBox.Image.Height)" if() 语句。 pBox 的两个维度都作为高度,可能会导致一些问题。检查一下