Windows窗体的大小是否包含其边框?

时间:2013-06-08 14:08:09

标签: c# winforms size border

设置窗体大小时,即;

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

这是否包含窗口围绕窗体的边框?因为我已经为我的表格添加了700x500的图像(通过pictureBoxes),并且它们已经被边界切断了。

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

1 个答案:

答案 0 :(得分:8)

这取决于,例如,当您以.NET 4.5为目标时,您将获得不同的大小。边框总是包含在内,但您实际上并不知道边框的数量。你在Aero中获得的胖边界和你在XP中获得的瘦小的边界存在问题。

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

硬编码大小总是错误的。您的表单将重新调整,具体取决于视频适配器的每英寸点数设置。 DPI设置越大,表格需要越大,以适应其内容。所以正确的陈述应该类似于:

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

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