2011-03-09 27 views
10

¿Hay alguna forma de detectar el ancho real del texto en una aplicación web vb.net? Debe depender de su estilo de fuente y tamaño.Detectar el ancho del texto en vb.net

En vb6 puede copiar el texto en una etiqueta y hacer que se expanda para que quepa y luego medir su ancho, pero esto no funcionará en vb.net.

+3

El truco etiqueta todavía funciona pero es torpe e ineficiente. –

+1

Siempre fue :-) – Urbycoz

Respuesta

22

actualización: En una inspección posterior, TextRenderer.MeasureText parece una mejor opción:

Dim text1 As String = "Measure this text" 
    Dim arialBold As New Font("Arial", 12.0F) 
    Dim textSize As Size = TextRenderer.MeasureText(text1, arialBold) 

Ver Graphics.MeasureString:

Medidas de la cadena especificada cuando dibuja con la fuente especificada.

Dim myFontBold As New Font("Microsoft Sans Serif", 10, FontStyle.Bold) 
    Dim StringSize As New SizeF 

    StringSize = e.Graphics.MeasureString("How wide is this string?", myFontBold) 
+0

Gracias. Este es definitivamente el tipo de cosas. El único problema es que parece requerir PaintEventArgs "e". – Urbycoz

+0

Si utilizo create graphics object y lo uso, no necesito paintEventArgs e. es decir, Dim g As Graphics = Graphics.FromImage (New Bitmap (1, 1)) – Urbycoz

+1

Parece que TextRenderer solo se puede usar en aplicaciones de Windows, no en aplicaciones web. Sin embargo, es útil saberlo. Aclamaciones. – Urbycoz

Cuestiones relacionadas