2012-11-07 50 views
4

我使用.Net工具來做一些2D繪圖。 System.Drawing.Font使用一個GetHeight(),以像素爲單位返回高度。我錯過了GetWidth()來檢索寬度!我應該使用什麼?獲取System.Drawing.Font寬度?

+4

也許[Graphics.MeasureString()](http://msdn.microsoft.com/en-us/library/6xe5hazb.aspx)可能有幫助嗎? – Bridge

+1

此[鏈接](http://stackoverflow.com/q/4219798/1577396)也可能有幫助。 –

+1

高度實際上給你的線距,而不是字體高度 –

回答

8

使用Graphics.MeasureString Method (String, Font)

EG。

// Set up string. string measureString = "Measure String"; 
    Font stringFont = new Font("Arial", 16); 
    // Measure string. 
    SizeF stringSize = new SizeF(); 
    stringSize = e.Graphics.MeasureString(measureString, stringFont); 
    // This will give you string width, from which you can calculate further 
    double width = stringSize.Width 
4

什麼寬度? GetHeight返回兩行文本的基線之間的距離,這是字體本身的屬性。但寬度取決於你要寫什麼。

如果您知道要寫什麼,請嘗試Graphics.MeasureString方法。

+0

啊,真的,'我'可以比'W'當然小:) –

+0

是的,正是:) – Rawling

+0

我沒有做downvote –