首页 > 解决方案 > 测量字符串的实际高度

问题描述

如何找到要渲染的字符串的实际高度(和宽度)?我需要能够绘制 x mm 高的文本。

如果我能得到实际的文本高度,应该很容易计算所需的字体大小。

例如。从字体大小开始,测量渲染文本并计算新字体大小(new_font_size = old_font_size * Wanted_height / measure_height)

我尝试过使用Graphics.MeasureString,但其中包括一些对于大尺寸可能会变得相当大的填充。

标签: c#.netgdi+

解决方案


似乎可以将文本添加到 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;
}

推荐阅读