Измерьте фактическую высоту строки - PullRequest
0 голосов
/ 16 сентября 2018

Как найти фактическую высоту (и ширину) строки для визуализации?Мне нужно иметь возможность рисовать текст высотой х мм.

Должно быть легко рассчитать необходимый размер шрифта, если я смогу получить фактическую высоту текста.

Например.начните с размера шрифта, измерьте отображаемый текст и вычислите новый размер шрифта (new_font_size = old_font_size * wanted_height / measure_height)

Я пробовал использовать Graphics.MeasureString, но это включает в себя некоторые отступы, которые могут стать довольно большими длябольшие размеры.

1 Ответ

0 голосов
/ 16 сентября 2018

Кажется, что это работает, чтобы добавить текст в 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;
}
...