是否有针对windows窗体应用程序边界的编程变量

本文关键字:边界 编程 变量 应用程序 窗体 windows 是否 | 更新日期: 2023-09-27 17:59:47

我正在尝试设置窗口窗体的最大大小,根据需要显示的数据的不同,该大小可能会有所不同。

有没有一种方法可以在不需要自己计算的情况下获得窗体周围边框的大小?

目前,我已经使用了SizeClientSize属性的差异,如:

windowDressingWidth = this.Size.Width - this.ClientSize.Width;
windowDressingHeigth = this.Size.Height - this.ClientSize.Height;

这是有效的,但似乎有点倒退。是否有某种类型的SystemInformation或类似的变量存储这一点(就像SystemInformation.HorizontalScrollBarHeight对滚动条高度所做的那样)。

我找到的最接近的是SystemInformation。FrameBorderSize,在我的系统中是8,这是我的窗口DressingWidth(16)的一半,所以它可能适用于每一侧。

在这个程序的情况下,它没有菜单,但(在我的系统上)周围都有空气边界,顶部较厚的边界用于标题和最大化、最小化和关闭控件。

是否有针对windows窗体应用程序边界的编程变量

您唯一需要的是SystemInformation。标题高度

我应该注意到这是个坏主意。始终设置ClientSize属性,这将自动确保窗口足够大,可以提供所需的客户端区域。还有设计器的工作方式,当您在"属性"窗口中设置窗体的Size属性时,设计器实际上会在InitializeComponent()方法中记录ClientSize值。这样可以确保您的表单在用户更改偏好的另一台机器上仍然有效。比如标题字体和按钮大小。或者关闭Aero的机器。