Я использую GDI + в C ++. (Эта проблема может существовать и в C #).
Я заметил, что всякий раз, когда я вызываю Graphics :: MeasureString () или Graphics :: DrawString (), строка дополняется пробелом слева и справа.
Например, если я использую шрифт Courier (не курсивом!) И я измеряю «P», я получаю 90, но «PP» дает мне 150. Я ожидаю, что моноширинный шрифт даст ровно двойную ширину "PP".
Мой вопрос: это предполагаемое или задокументированное поведение, и как мне отключить это?
RectF Rect(0,0,32767,32767);
RectF Bounds1, Bounds2;
graphics->MeasureString(L"PP", 1, font, Rect, &Bounds1);
graphics->MeasureString(L"PP", 2, font, Rect, &Bounds2);
margin = Bounds1.Width * 2 - Bounds2.Width;