我在 C++ 中使用 GDI+。(这个问题也可能存在于 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;