2009-07-16 12 views
10

eşdeğeri C# hızlı bir uygulama geliştiriyorum. Yapmak istediğim bir şey, Swing'in (java) pack() eşdeğeridir. Bu, bir formu (Java'daki Çerçeve) söyleyebilmem için kendinizdeki bileşenlerin toplamının boyutuna yeniden boyutlandırmamı sağlayan bir çağrıdır.Swing paketi C#

Aradığım ve arandığım (bileşenler dinamik olarak değişir, böylece formu doğru boyuta kodlayamıyorum) ancak C# ile eşdeğer yöntemi bulamıyorum.

Neyin çağrıldığını bilen var mı?

cevap

11

Formu 'paketlemek' için kod yazmanıza bile gerek yoktur. Form tasarımcısında, formun AutoSize özelliğini true olarak ayarlayın ve AutoSizeMode özelliğini GrowAndShrink olarak ayarlayın; bu, boyutu değiştirebilecek formdaki tüm denetimler için bunu tekrarlayın.

Ve voila!

Çalışma zamanında (yalnızca), form tüm denetimleri karşılamak için kendisini dinamik olarak yeniden boyutlandıracaktır. Denetimlerden biraz uzak kalmasını ve böylece denetimlerin kenarlara yapışmayacak olmasını istiyorsanız, Padding özelliğini ayarlayabilirsiniz (en az 12,12,12,12 değerini öneririm) . görüntü ekran küçük olması halinde

<Window SizeToContent="WidthAndHeight" /> 
+1

Metni sarmaya zorlamak için "MaximumWidth" özelliği, uzun satırların formunuzu ekrandan daha geniş olmasını önler. – Robadob

2

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(); 
etiketler gibi kontrollere autoSize ayarlarken, muhtemelen ayarlamak isteyeceksiniz
0

başka çözümü, mevcut: xaml Ayrıca