如何计算.net窗体的最小_client_大小?

fus*_*usi 3 .net size layout resize winforms

我试图以编程方式在表单中定位某些控件,基于表单最小大小和客户端大小之间的差异 - 不幸的是,根据用户加载的主题产生不同的结果(大多数问题似乎是由于事实标题栏和表格边框在不同的主题中具有不同的高度/宽度).我已经尝试使用整个窗口的高度(包括标题栏等),但这似乎没有按预期工作:(

不幸的是,这导致控件不对齐.在此特定使用场景中,使用自动布局控件(例如流布局面板)不是可行的解决方案.

我必须遗漏一些非常明显的东西 - 有更好的方法吗?

如果这个问题听起来愚蠢,请道歉

非常感谢戴夫

Pon*_*dum 5

我发现准确地解决它的唯一方法是做类似的事情:

int delta = this.Height - this.ClientRectangle.Height;
Run Code Online (Sandbox Code Playgroud)

然后使用它,当我需要基于客户端的东西是形式(当我想要一个表单自动调整大小到一些按钮并在它们周围有相同的边框时使用它).

所以对你来说:

int delta = this.Height - this.ClientRectangle.Height;
int actualMinHeight = this.MinimumSize.Height - delta;
Run Code Online (Sandbox Code Playgroud)

HTH

编辑:我确实尝试使用SystemInformation.Border3DSizeSystemInformation.BorderSize属性,但他们也没有给我正确的宽度.