У меня есть PictureBox
, который находится внутри tableLayoutPanel3
, когда я выбираю файл из Listbox
изменить размер pictureBox
к размеру изображения:PictureBox.Size свойство не зависит от присвоения
private void imageListBox_SelectedIndexChanged(object sender, EventArgs e) {
System.Diagnostics.Debug.WriteLine(imageListBox.Items[0]);
string imagePath = imageListBox.SelectedItem + "";
Bitmap = new Bitmap(imagePath);
pictureBox.Image = Bitmap;
pictureBox.Size = Bitmap.Size;//doesn't change pictureBox's size
//those two sizes below are different
Debug.WriteLine(Bitmap.Width + " " + Bitmap.Height);
Debug.WriteLine(pictureBox.Width + " " + pictureBox.Height);
Invalidate();
}
Вопрос: Как изменить размер PictureBox так вписывает изображение внутри?
Мое грязное решение, с которым я столкнулся, разрешает проблему: this.Size = new Size(tableLayoutPanel2.Width + Bitmap.Size.Width, Bitmap.Height);
, но, на мой взгляд, это неправильный путь.
EDIT: Я пробовал каждый доступный PictureBox.SizeMode
.
Что об использовании имущества SizeMode PictureBox в? например С StretchImage? Или AutoSize? – Pikoh
@Pikoh Я уже пробовал те, они никак не влияют на размер pictureBox. – Yoda
Yoda, конечно, режим AutoSize меняет изображение на размер растрового изображения ... Я только что попробовал. Возможно, это tableLayout, что не меняет его размер. – Pikoh