用C#代替Swing的包

时间:2009-07-16 18:24:39

标签: c# user-interface swing

我正在使用C#开发一个快速应用程序。我想做的一件事就是等同于Swing(java)pack()。这是一个允许我对表单(Java中的框架)说出来的调用,将自己调整为自己内部组件总和的大小。

我已搜索和搜索(组件动态变化,所以我不能简单地将表单硬编码到正确的大小)但我找不到C#中的等效方法。

有谁知道它叫什么?

3 个答案:

答案 0 :(得分:11)

您甚至不需要编写代码来“打包”表单。在表单设计器中,将表单的AutoSize属性设置为true,并将AutoSizeMode属性设置为GrowAndShrink,对表单上的任何控件重复此操作,这些控件也可能会更改大小

瞧!

在运行时(仅限),表单将动态调整自身大小以适应所有控件。如果你希望它与控件保持一点距离,以便控件不会“粘住”边缘,你可以设置Padding属性(我建议至少值为12,12, 12,12)。

答案 1 :(得分:3)

同样在xaml:

<Window SizeToContent="WidthAndHeight" />

答案 2 :(得分: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();