MeasureString () remplit le texte à gauche et à droite

J'utilise GDI+ en C++. (Ce problème peut exister en C#).

J'ai remarqué qu'à chaque fois que j'appelle Graphics::MeasureString() ou de la carte Graphique::DrawString(), la chaîne est rembourré avec un espace vide à gauche et à droite.

Par exemple, si je suis en utilisant une police Courier, (pas d'italique!) et je mesure le "P" - je obtenir 90, mais "PP" me donne 150. Je m'attends à une police à espacement fixe de donner exactement le double de la largeur de la "PP".

Ma question est: est-ce prévu ou comportement documenté, et comment puis-je désactiver cette option?

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;

source d'informationauteur Tim Cooper