2

当您设置窗口窗体的大小时,即;

Form1.Size = new System.Drawing.Size(700, 500);

这是否包括窗口放置在表单周围的边框?因为我在表单中添加了 700x500 的图像(通过图片框),并且它们已被边框截断。

另外:当我说边框时,我的意思是默认的窗口边框,您可以拖动它的边缘来调整它的大小,以及包含红色的 X、最小化和最大化按钮。

4

1 回答 1

8

这取决于,例如,当您以 .NET 4.5 为目标时,您将获得不同的大小。边界总是包含在内,但您并不真正知道包含了多少边界。Aero 的粗边框和 XP 中的细边框的问题。

这几乎总是错误的做法。您总是希望分配ClientSize属性。重要的是,它不包括边框,因此您可以确保控件仍然适合。

硬编码大小也总是错误的。根据视频适配器的每英寸点数设置,您的表单将重新缩放。DPI 设置越大,表单就需要越大才能适合其内容。所以正确的陈述应该是这样的:

  this.ClientSize = new Size(PictureBox3.Right, PictureBox3.Bottom);

假设“PictureBox3”是您想要保持可见的最右下角的控件。此语句需要出现在 Load 事件处理程序中以确保已完成重新缩放,它不能在构造函数中工作。使用 Load 事件的少数几个好理由之一。

于 2013-06-08T14:18:04.340 回答