2015-12-15 2 views
0

Как я могу настроить свой размер изображения по высоте, ширине и местоположению по размеру формы? Сейчас я по умолчанию выглядит как это:Как заставить PictureBox настраивать высоту, ширину и местоположение в форме при изменении размера формы?

og

но если я изменить его с моей мыши это выглядит следующим образом:

enter image description here

Как я могу получить его так, чтобы он заполнил в пространствах правильно и пропозиционально (относительно размеров формы)?

Вот что я пробовал:

private void Form1_Resize(object sender, EventArgs e) { 
      //adjust the size of the tiles relative to the dimension of the window 
      if (Size != new Size(442, 465)) {//the default size of the form 
       for (int i = 0; i < picBox.Length; i++) { 
        picBox[i].Height = Size.Height/4;//picBox is an array of PictureBoxs with default heights, widths, and locations 
        picBox[i].Width = Size.Width/4; 
       } 
      } 
     } 

Моя проблема отличается от this one потому, что я пытаюсь, чтобы мои содержимое приспособиться к размеру формы, а не наоборот.

ответ

0

Используйте AutoSize, чтобы форматировать форму для изменения ее содержимого. Форма не изменяется автоматически в конструкторе форм Visual Studio независимо от значений свойств AutoSize и AutoSizeMode. Форма корректно меняет размеры во время выполнения в соответствии со значениями этих двух свойств. Напротив, пользовательский UserControl автоматически изменяет размеры как во время разработки, так и во время выполнения. При использовании AutoSize свойства MinimumSize и MaximumSize соблюдаются, но текущее значение свойства Size игнорируется. Использование AutoSize и AutoSizeMode также делает излишним свойство AutoScroll, поскольку нет способа сжать форму, чтобы скрыть содержащиеся в ней элементы управления из представления. См. Перечисление AutoSizeMode для получения информации о том, как ведет себя форма, когда AutoSize имеет значение true.

private void Form1_Load(object sender, EventArgs e) 
{ 
    this.AutoSize = true; 
    this.AutoSizeMode = AutoSizeMode.GrowAndShrink; 
} 

см This майкрософт ссылки для получения дополнительной информации

Есть некоторые ограничения в применении WinForms, чтобы сделать переменный размер окна во время выполнения. В вашем случае я бы предложил просто не позволять пользователю изменять размер окна, но при этом его окно приложения подходит к его разрешению экрана по нижнему коду при событии загрузки формы.

this.Location = new Point(0, 0); 
this.Size = Screen.PrimaryScreen.WorkingArea.Size; 
+0

Спасибо за ответ, но когда я пытаюсь что это даже не позвольте мне изменить размер ... –

+0

Пожалуйста, обратитесь это, Есть ограничения Winforms http://stackoverflow.com/questions/5962595/how-do-you-resize-a-form-to-fit-its-content-автоматически –

+0

Я тоже пробовал, но не повезло. –

Смежные вопросы