如何找到要渲染的字符串的实际高度(和宽度)?我需要能够绘制x毫米高的文本。
如果我可以得到实际的文字高度,应该很容易计算所需的字体大小。
例如。从字体大小开始,测量渲染的文本并计算新的字体大小(new_font_size = old_font_size * wanted_height / measured_height)
我尝试使用Graphics.MeasureString
,但是其中包含一些填充,对于大尺寸填充可能会变得很大。
答案 0 :(得分:0)
将文本添加到GraphicsPath并从中获取大小似乎很可行:
public static SizeF GetSize(String text, Font font, StringFormat format)
{
GraphicsPath path = new GraphicsPath();
path.AddString(text, font.FontFamily, (int)font.Style, font.SizeInPoints, new PointF(0, 0), format);
return path.GetBounds().Size;
}