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

 我来答
Damon_lan
推荐于2017-12-15 · TA获得超过2054个赞
知道小有建树答主
回答量:415
采纳率:0%
帮助的人:182万
展开全部
  1. 窗体名称是个很纠结的事情,正常情况一般是不去更改它的。这都怪微软。。。在win8.1的系统里,winform程序的title是自动居中。。

  2. 所以在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();
            }
  3. 注意这段代码,要放到Form和Resize事件中。。因为Form是在窗体启动的时候,而Resize是在更改窗体大小的时候去弄!

  4. 结果截图


  5. 祝你好运。加油。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式