c#中如何实现窗体名称的居中显示

如题所述

    窗体名称是个很纠结的事情,正常情况一般是不去更改它的。这都怪微软。。。在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是在更改窗体大小的时候去弄!

    结果截图


    祝你好运。加油。

温馨提示:答案为网友推荐,仅供参考
相似回答