Estoy usando GDI + en C++. (Este problema también puede existir en C#).MeasureString() almohadilla el texto a la izquierda y la derecha
Observo que cada vez que llamo a Graphics :: MeasureString() o Graphics :: DrawString(), la cadena se rellena con espacio en blanco a la izquierda y derecha.
Por ejemplo, si estoy usando una fuente Courier (¡no en cursiva!) Y mido "P", obtengo 90, pero "PP" me da 150. Esperaría que una fuente monoespacial diera exactamente el doble del ancho para "PP".
Mi pregunta es: ¿es este comportamiento intencionado o documentado, y cómo lo desactivo?
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;
Obtengo mejores resultados con la clase TextRenderer. – Bitterblue
TextRenderer era exactamente lo que necesitaba en una situación similar – Rob
TextRenderer funcionó mucho mejor para mí también – Migs