Ищете лучший способ изменить размер родительской формы - PullRequest
2 голосов
/ 08 декабря 2008

У меня есть простое приложение, которое показывает картинки, перетаскиваемые на него. Я бы хотел, чтобы приложение изменило размеры в соответствии с изображением, которое оно отображает. Код ниже делает именно это:

// Load the picture
Bitmap picture = new Bitmap(s);

// Calculate the size of the main form
this.Size = new Size(picture.Width + 
                       (this.pictureBox.Padding.All + 
                        this.pictureBox.Margin.All + 
                        this.tableLayoutPanel.Padding.All + 
                        this.tableLayoutPanel.Margin.All) * 2, 
                     picture.Height + 
                       (int)this.tableLayoutPanel.RowStyles[1].Height + 
                       (this.pictureBox.Padding.All + 
                        this.pictureBox.Margin.All + 
                        this.tableLayoutPanel.Padding.All + 
                        this.tableLayoutPanel.Margin.All) * 2);
 // Display the file.
 this.pictureBox.Image = picture;

Кажется, вполне очевидно, что мне нужна помощь, чтобы улучшить это. Чем сложнее формы, тем больше будет расчет подходящего размера. Предложения?

Ответы [ 2 ]

4 голосов
/ 08 декабря 2008

Вы можете взглянуть на свойства форм:

  • Form.AutoSize
  • Form.AutoSizeMode

Те, что в сочетании с настройкой AutoSizeMode в PictureBox, должны дать вам эффект, который вы ищете (без необходимости писать код).

3 голосов
/ 08 декабря 2008

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

...