2012-04-30 10 views
5

Im tratando de escribir texto en C# para que abarque el ancho requerido (aproximadamente).C# calcular la altura de una cadena con el ancho dado

Para escribir texto, debe especificar la altura. Así que necesito saber qué altura lo haría escribir en la longitud deseada.

Font myFont = new Font(FontFamily.GenericSansSerif, unknown); 
gc.DrawString(LabelText, myFont, gBrush, 0, 0); 

Ive encontró lo siguiente, pero requiere FUENTE, que requiere altura. Que derrota todo el punto?

gc.MeasureString(LabelText, new Font(FontFamily.GenericSansSerif, 12), length); 

¿Cómo puedo determinar la altura requerida para hacer, por ejemplo, "I am a String" stretch 50px.

+0

'MeasureString' con diferentes tamaños de fuente y seleccione la mejor opción. – Oded

+0

¿Es prueba y error? Estoy dibujando muchas cuerdas ... de diferentes tamaños, seguramente medir muchas veces para cada uno no es la mejor manera? – Doomsknight

+1

No es eficiente, pero si comienza con un tamaño razonable (posiblemente derivado del ancho en píxeles), puede minimizar las pruebas. – Oded

Respuesta

4

Hay un ejemplo en el sitio switchonthecode (nota - versión archivada). Proporcionan un método que toma un tamaño de fuente mínimo y máximo junto con el tamaño de su área. Prueba el tamaño mínimo y a partir de allí determina la proporción de la fuente y luego determina el mejor tamaño para usted.

Cuestiones relacionadas