c# - texto - tamaño de letra en un label
Cómo determinar el tamaño de una cadena dada una fuente (3)
Tengo un pequeño formulario que muestra información sobre el progreso.
Muy rara vez tengo que mostrar un mensaje bastante largo y quiero poder cambiar el tamaño de este formulario cuando sea necesario para que este mensaje encaje en el formulario.
Entonces, ¿cómo puedo saber cómo se representará la cadena S
ancha en la fuente F
?
De vuelta en el Win32, estaba usando el equivalente para la función VisualStyleRenderer :: GetTextExtent para esto.
Depende del motor de renderizado que se esté utilizando. Básicamente puede cambiar entre GDI y GDI +. El cambio se puede hacer configurando la propiedad UseCompatibleTextRendering
consecuencia
Cuando uses GDI + debes usar MeasureString
:
string s = "A sample string";
SizeF size = e.Graphics.MeasureString(s, new Font("Arial", 24));
Cuando use GDI (es decir, la representación nativa de Win32), debe usar la clase TextRenderer
:
SizeF size = TextRenderer.MeasureText(s, new Font("Arial", 24));
Vea este artículo: Representación de texto: cree aplicaciones preparadas para el mundo utilizando secuencias de comandos complejas en los controles de formularios de Windows
Qué tal esto:
Size stringsize = graphics.MeasureString("hello", myFont);
( Here está el enlace de MSDN.)