我正在用C#开发一个快速应用程序。我想做的一件事是相当于Swing(java)中的pack()
。这是一个调用,允许我对表单(Java中的Frame)说,将自己调整为自身组件大小之和的大小。
我已经搜索了很久(组件是动态变化的,因此无法简单地硬编码表单到正确的大小),但我找不到C#中等效的方法。
有人知道它叫什么吗?
我正在用C#开发一个快速应用程序。我想做的一件事是相当于Swing(java)中的pack()
。这是一个调用,允许我对表单(Java中的Frame)说,将自己调整为自身组件大小之和的大小。
我已经搜索了很久(组件是动态变化的,因此无法简单地硬编码表单到正确的大小),但我找不到C#中等效的方法。
有人知道它叫什么吗?
为了“打包”表单,您甚至不需要编写代码。在表单设计器中,将表单的 AutoSize
属性设置为 true
,并将 AutoSizeMode
属性设置为 GrowAndShrink
,对于任何可能改变大小的控件也要重复此操作。
然后就大功告成了!
运行时(仅限运行时),表单将动态调整大小以容纳所有控件。如果您希望它与控件保持一定的距离,以便控件不会粘在边缘,您可以设置 Padding
属性(我建议至少设置12,12,12,12的值)。
<Window SizeToContent="WidthAndHeight" />
另一种解决方案,仅适用于图像小于屏幕的情况:
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();