Измените ширину PictureBox и сохраните пропорции - PullRequest
0 голосов
/ 30 апреля 2018

Я загружаю изображение динамически в уже существующий PictureBox person_img, который имеет все значения по умолчанию и имеет неправильный размер. Я ожидаю, что смогу выполнить динамическое изменение размеров, чтобы все изображения имели 1/3 ширины people_popup_tab.

Я пробовал много способов, включая ответы на похожие вопросы. Моей последней попыткой было загрузить изображение и установить для параметра SizeMode значение AutoSize, чтобы оно сначала отображалось в полном размере, а затем я мог бы получить его ширину и высоту таким образом. Тогда я бы использовал эту ширину и высоту, чтобы знать, как пропорционально уменьшить изображение.

Но изображение все еще делает все шатким. Некоторые также просто не появляются сейчас.

enter image description here

Как изменить размер изображения до 1/3 ширины people_popup_tab без потери соотношения сторон?

Мой текущий код:

person_img.SizeMode = PictureBoxSizeMode.AutoSize;
person_img.Load(thisFaculty.imagePath);
int oldWidth = person_img.Width; 
int oldHeight = person_img.Height;
int newWidth = people_popup_tab.Width / 3;
int newHeight = oldHeight * (newWidth / oldWidth);
person_img.SizeMode = PictureBoxSizeMode.StretchImage;
person_img.Width = newWidth;
person_img.Height = newHeight;

1 Ответ

0 голосов
/ 30 апреля 2018

Сначала загрузите изображение в класс Bitmap, а затем измените размер вашего графического блока, используя реальные размеры изображения. Аналогично приведенному ниже коду

var bmp = new Bitmap(imageFile);
pictureBox1.Width = bmp.Width / 3;
pictureBox1.Height = bmp.Height / 3;
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
pictureBox1.Image = bmp;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...