Итак, я работаю над этим приложением форм MDI, и я использую окно с изображением, чтобы показывать фотографии, выбранные из openFileDialog. Однако сегодня пользователь жаловался на то, что если изображение является ландшафтным (я сделал тест с разрешением 1920x1200), он действительно сокращает правый конец изображения. Конечно, ширина окна изображения намного меньше (440 пикселей), но все же даже для изображения, которое я использовал для теста, оно немного сократилось. Однако это неприемлемо, поэтому я хочу, чтобы все изображение соответствовало рамке рамки изображения независимо от того, насколько она велика.PictureBox режет часть изображения, когда это пейзаж
Вот мой код, показывающая картина:
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
.
PS
Это оригинальный рис:
И это, как режет PictureBox на правой стороне (обратите внимание на кусты от оригинального образа - они ушли)
Создайте новый проект, добавьте иллюстрацию и воспроизведите проблему. Затем покажите код здесь. Если вы не можете воспроизвести его в новом проекте, то проблема, очевидно, находится где-то еще в вашем проекте code/ui (что-то может покрывать правую часть изображения). Этого не должно быть, он должен отлично работать с SizeMode Zoom, который вы используете. – svinja
Согласен ... это невозможно с помощью набора «Масштаб». Можете ли вы опубликовать несколько скриншотов из полного изображения и как его отрезать? –
Теперь вы можете видеть в отредактированном сообщении, что действительно происходит. – Leron