You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取WinForm窗口顶部边框高度?

获取WinForm窗口顶部边框高度的方案

你的思路是对的:窗口的标题栏及边框尺寸由Windows系统设置(可通过显示设置调整),无法通过WinForm直接修改,但确实可以获取其高度。以下是两种可行方法:

方法1:通过窗口自身属性计算

利用窗口的Bounds(整个窗口的矩形区域)和ClientRectangle(客户区内部区域)的属性差值计算,或者直接读取客户区相对窗口的顶部偏移:

// 方式A:通过整体高度差计算标题栏+顶部边框总高度
int topBarTotalHeight = this.Bounds.Height - this.ClientRectangle.Height;

// 方式B:直接获取客户区顶部到窗口顶部的距离(即标题栏+顶部边框高度)
int topBarTotalHeight = this.ClientRectangle.Top;

方法2:调用Windows API获取系统默认指标

如果需要在未创建窗口时获取系统默认的标题栏和边框尺寸,可以调用GetSystemMetrics API:

首先引入API声明:

using System.Runtime.InteropServices;

[DllImport("user32.dll")]
private static extern int GetSystemMetrics(int nIndex);

// 系统指标常量
private const int SM_CYCAPTION = 4; // 标题栏高度
private const int SM_CYBORDER = 6; // 窗口上下边框的高度

然后获取总高度:

// 标题栏高度 + 顶部边框高度
int systemTopBarHeight = GetSystemMetrics(SM_CYCAPTION) + GetSystemMetrics(SM_CYBORDER);

窗口标题栏与边框示意图

内容的提问来源于stack exchange,提问作者ssd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 21:52:11