winform 窗体中顶部标题居中显示
在网上看了很多例子,都不能居中,都有或多或少的问题
自己根据网友的代码改编入下:
先确随便写一个标题的内容:
string titleMsg =“Winfrom Title”
获取对Graphics对象的引用:
Graphics g = this.CreateGraphics();
根据Graphics对象来计算标题的开始居中位置:
Double startingPoint = (this.Width / 2) - (g.MeasureString(titleMsg, this.Font).Width / 2);
计算一个空字符所占像素长度:
Double widthOfASpace = g.MeasureString(" ", this.Font).Width;
定义一个空字符串来用作为标题之前做占位:
String tmp = " ";
定义一个初始占位像素:
Double tmpWidth = 0;
循环遍历,将startingPoint之前的像素都用空字符代替:
while ((tmpWidth + widthOfASpace) < startingPoint) { tmp += " "; tmpWidth += widthOfASpace; }
最后将标题字符跟换:
this.Text = tmp + titleMsg;
完整代码如下:
1 private void SetTitleCenter() 2 { 3 string titleMsg = "Winfrom Title"; 4 Graphics g = this.CreateGraphics(); 5 Double startingPoint = (this.Width / 2) - (g.MeasureString(titleMsg, this.Font).Width / 2); 6 Double widthOfASpace = g.MeasureString(" ", this.Font).Width; 7 String tmp = " "; 8 Double tmpWidth = 0; 9 10 while ((tmpWidth + widthOfASpace) < startingPoint) 11 { 12 tmp += " "; 13 tmpWidth += widthOfASpace; 14 } 15 this.Text = tmp + titleMsg; 16 }
将上面SetTitleCenter()方法写在窗体构造方法中的InitializeComponent()方法之后即可
参考地址:
https://blog.csdn.net/weixin_44022374/article/details/105459718
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端