所以我在这个 MDI 表单应用程序上工作,我使用图片框来显示从 openFileDialog 中选择的图片。然而,今天一位用户抱怨说,如果图片是横向的(我用 1920x1200 进行了测试),它确实会切掉图片的右端。当然,图片框的宽度要小得多(440px),但即使是我用来测试的图像,它也只是剪了一点点。然而这是不可接受的,所以我想让整个图像适合相框框架,无论它有多大。
这是我显示图片的代码:
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "All files (*.jpg)|" + prefixFilter + "*.jpg";
openFileDialog1.FileName = prefixFilter;
openFileDialog1.Title = "Select file";
openFileDialog1.InitialDirectory = DefaultOpenPath;
openFileDialog1.FilterIndex = 1;
openFileDialog1.RestoreDirectory = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
try
{
IsImageOpened = true;
selectedFile = openFileDialog1.FileName;
selectedFileName = openFileDialog1.SafeFileName;
using (var temp = new Bitmap(openFileDialog1.FileName))
{
pictureBox1.Image = new Bitmap(temp);
}
int imageWidth = pictureBox1.Image.Width;
int picBoxWidth = pictureBox1.Width;
if (imageWidth != 0 && picBoxWidth > imageWidth)
{
pictureBox1.Width = imageWidth;
}
else
{
pictureBox1.Width = defaultPicBoxWidth;
}
}
catch (Exception ex)
{
logger.Error(ex.ToString());
IsImageOpened = false;
MessageBox.Show("Error loading image!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
在这里,我使用图像宽度,但出于不同的目的,我不知道是否可以使用此代码或有一些标准方法来处理此问题。
我的图片框也有SizeMode - Zoom
.
附言
这是原图:
这就是图片框在右侧切割它的方式(从原始图像中寻找灌木丛 - 它们已经消失了)