我正在尝试设置Windows窗体可以设置的最大大小,这可能会有所不同,具体取决于需要显示的数据。
有没有办法在不需要自己计算的情况下获取Windows窗体周围的边框大小?
目前,我使用了Size
和ClientSize
属性的差异,例如:
windowDressingWidth = this.Size.Width - this.ClientSize.Width;
windowDressingHeigth = this.Size.Height - this.ClientSize.Height;
哪个有效,但似乎有点倒退。是否存在某种SystemInformation
或类似的变量来存储它(如SystemInformation.HorizontalScrollBarHeight
对滚动条高度所做的那样)。
我发现的最接近的是SystemInformation.FrameBorderSize,在我的系统上是8,这是我windowDressingWidth(16)的一半,所以可能是每一方。
在这个程序的情况下,它没有菜单,但是(在我的系统上)四周都有aero边框,标题和最大化,最小化和关闭控件的顶部都有较粗的边框。
答案 0 :(得分:2)
您唯一需要的是SystemInformation.CaptionHeight
我应该注意到这是一个坏主意。始终设置ClientSize属性,以自动确保窗口足够大以提供所需的客户区。设计器的工作方式,当您在“属性”窗口中设置窗体的“大小”属性时,设计器实际上会在InitializeComponent()方法中记录ClientSize值。这可确保您的表单仍然可以在用户更改首选项的另一台计算机上运行。像标题字体和按钮大小。或者关闭Aero的机器。