2009-07-16 38 views
10

我正在C#中開發一個快速應用程序。我想要做的一件事是相當於Swing的(java)pack()。這是一個調用,允許我對錶單(Java框架)進行說明,將自己的大小調整爲自己內部組件總和的大小。等效於C中的Swing包#

我已搜索和搜索(組件動態變化,所以我不能簡單地將窗體硬編碼到正確的大小),但我無法找到C#中的等效方法。

有人知道它叫什麼嗎?

回答

11

你甚至不需要編寫代碼來「打包」表格。在表單的設計器中,將表單的AutoSize屬性設置爲true,並將AutoSizeMode屬性設置爲GrowAndShrink,然後對錶單上的任何控件重複此操作,該控件還可能更改大小。

瞧!

在運行時(僅),表單將動態調整其自身以適應所有控件。如果您希望它與控件保持一點距離,以便控件不會「粘」到邊緣,則可以設置Padding屬性(我建議至少使用12,12,12,12的值) 。

+1

當如標籤控件設置自動調整大小,你可能會想設置用於強制文本換行的`MaximumWidth`屬性,防止任何長行使窗體比屏幕更寬。 – Robadob 2013-08-09 11:08:18

2

而且在XAML:

<Window SizeToContent="WidthAndHeight" /> 
0

另一種解決方案,僅如果圖像是小於屏幕:

Form frm = new Form(); 
PictureBox pbx = new PictureBox(); 
pbx.Image = Image.FromFile(_imagePath.Text); 
pbx.Dock = DockStyle.Fill; 
frm.Controls.Add(pbx); 
frm.Size = pbx.Image.Size; 
frm.Show();