2012-11-07 42 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 –