Убедитесь, что вы используете правильный формат для измерения вашего текста. Вы не включили весь исходный код, поэтому я не могу сказать, если вы.
Существует два «стандартных» значения формата, которые вы можете использовать:
StringFormat.GenericTypographic
и StringFormat.GenericDefault
. Если память используется, то по умолчанию выбирается GenericDefault
, но при рендеринге пользовательский интерфейс - GenericTypographic
.
.
Следовательно, вместо того, чтобы делать new StringFormat()
, вы хотите вместо этого сделать StringFormat.GenericTypographic.Clone()
. Это должно исправить поля и интервалы и дать вам результаты измерений, которые соответствуют тому, что вы видите на поверхности Graphics
.
Стратегия, которую я обычно использую, состоит в том, чтобы создать один экземпляр StringFormat
и использовать его как для визуализации текста, так и для измерения, чтобы убедиться, что все выстроено в линию - я избегаю любого метода, который позволяет мне пропустить StringFormat
, поскольку по умолчанию, вероятно, нет ' т, что я хочу.
Надеюсь, это поможет. Если у вас все еще возникают проблемы, попробуйте опубликовать более полный фрагмент кода, чтобы мы могли видеть, как вы рисуете свой текст.