窗体名称是个很纠结的事情,正常情况一般是不去更改它的。这都怪微软。。。在win8.1的系统里,winform程序的title是自动居中。。
所以在win8.1之下 就没那么幸运了!~~所以,只能用一中比较极端的办法去实现:
private void ChangeTitlePosition()
{
Graphics g = this.CreateGraphics();
Double startingPoint = (this.Width / 2) - (g.MeasureString(this.Text.Trim(), this.Font).Width / 2);
Double ws = g.MeasureString("*", this.Font).Width;
String tmp = " ";
Double tw = 0;
while ((tw + ws) < startingPoint)
{
tmp += "*";
tw += ws;
}
this.Text = tmp.Replace('*', ' ') + this.Text.Trim();
}注意这段代码,要放到Form和Resize事件中。。因为Form是在窗体启动的时候,而Resize是在更改窗体大小的时候去弄!
结果截图
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/cb8065380cd79123a49393caa8345982b2b78018?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
祝你好运。加油。