none
如何讓文字置中呢? RRS feed

  • 問題

  • 我想在自行繪製的矩形或橢圓之中填寫一段文字﹐我怎麼計算讓這段文字的位置是在這個矩形的中間呢?

    如果使用DrawString來填入的話﹐其中的PointF指的是要繪製文字的左上角建立點的座標﹐這樣子不容易計算實際的左上角座標﹐請問該怎麼做呢?

    2006年9月1日 上午 02:51

解答

  • HI,

    假設Form上貼了一個叫做Panel1的Panel控制項, 利用以下的程式碼就在Panel1的中央顯示Hello:

    StringFormat sf= new StringFormat();
    sf.Alignment = StringAlignment.Center;
    sf.LineAlignment = StringAlignment.Center;
    e.Graphics.DrawString("Hello", panel1.Font, Brushes.Blue, new RectangleF(panel1.Left, panel1.Top, panel1.Width, panel1.Height), sf);

    tihs

    2006年9月1日 上午 09:36

所有回覆

  • HI,

    假設Form上貼了一個叫做Panel1的Panel控制項, 利用以下的程式碼就在Panel1的中央顯示Hello:

    StringFormat sf= new StringFormat();
    sf.Alignment = StringAlignment.Center;
    sf.LineAlignment = StringAlignment.Center;
    e.Graphics.DrawString("Hello", panel1.Font, Brushes.Blue, new RectangleF(panel1.Left, panel1.Top, panel1.Width, panel1.Height), sf);

    tihs

    2006年9月1日 上午 09:36
  • 字體有可能受到不同字型的影響,寬度就會不一樣,所以可以先用Graphics物件的MeasureString先測看看寬度,再去算出適合置中的Left位置,是比較安全的作法
    2006年9月4日 上午 01:32