Может быть, вы могли бы использовать историческую версию API . Возможно, другим вариантом может быть создание файлов cookie на стороне сервера или небольшой базы данных для исторических значений.
Это зависит от используемого механизма визуализации. Можно в основном переключиться между GDI и GDI +. Переключение может быть сделано путем установки UseCompatibleTextRendering
свойство соответственно
При использовании GDI + необходимо использовать MeasureString
:
string s = "A sample string";
SizeF size = e.Graphics.MeasureString(s, new Font("Arial", 24));
При использовании GDI (т.е. собственный рендеринг Win32) необходимо использовать TextRenderer
класс:
SizeF size = TextRenderer.MeasureText(s, new Font("Arial", 24));
См. эту статью: текстовый Рендеринг: Создайте Мировые Готовые Приложения Используя Сложные Сценарии В элементах управления Windows Forms
Назад в Win32 я использовал эквивалент для VisualStyleRenderer:: GetTextExtent функционируют для этого.