Ich benutze GDI + in C++. (Dieses Problem kann auch in C# vorkommen).MeasureString() puffert den Text auf der linken und rechten Seite
Ich stelle fest, dass, wenn ich Graphics :: MeasureString() oder Graphics :: DrawString() aufrufen, die Zeichenfolge mit Leerzeichen links und rechts aufgefüllt wird.
Zum Beispiel, wenn ich eine Courier Schriftart verwende, (nicht kursiv!) Und ich "P" erhalte ich 90, aber "PP" gibt mir 150. Ich würde erwarten, dass eine Monospace-Schriftart genau die doppelte Breite gibt für "PP".
Meine Frage ist: ist das beabsichtigte oder dokumentierte Verhalten, und wie deaktiviere ich das?
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;
Ich bekomme bessere Ergebnisse mit TextRenderer-Klasse. – Bitterblue
TextRenderer war genau das, was ich in einer ähnlichen Situation brauchte – Rob
TextRenderer arbeitete auch viel besser für mich – Migs