在画图过程中,Graphics.MeasureString可以取得字符串的宽度及高度等信息,对于字符串的存放坐标的计算非常有用,尤其是居中显示时。
'------------------------------------------------------
Dim mySizeF As System.Drawing.SizeF
mySizeF = g.MeasureString(iQuantity(i).ToString(), New Font("宋体", 9))
mySizeF.Width
'字符串的宽度
mySizeF.Height '字符串的高度
Graphics.MeasureString 不能获得精确宽度的问题
public float CalTextWidth(Graphics g, Font font, string text)
{
StringFormat sf = StringFormat.GenericTypographic;
sf.FormatFlags |= StringFormatFlags.MeasureTrailingSpaces;
SizeF s = g.MeasureString(text, font, 0, sf);
return s.Width;
}
这是为什么呢,原来在Graphics.MeasureString()函数调用中,若不指定StringFormat,则会以缺省的StringFormat来处理。