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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM