Otra forma de hacerlo es con un TextRenderer
, y llamar a su método MeasureString
, pasando la cadena y el tipo de letra.
MSDN Ejemplo:
private void MeasureText1(PaintEventArgs e)
{
String text1 = "Measure this text";
Font arialBold = new Font("Arial", 12.0F);
Size textSize = TextRenderer.MeasureText(text1, arialBold);
TextRenderer.DrawText(e.Graphics, text1, arialBold,
new Rectangle(new Point(10, 10), textSize), Color.Red);
}
NOTA: Esto es sólo una solución alternativa a la (igualmente válidas) uno ya publicado por @Neil Barnwell (en caso de que ya tienen una referencia al Sistema .Windows.Forms en su proyecto, esto podría ser más conveniente).
Podría combinarse con esto: http://stackoverflow.com/questions/5553965/programmatically-measure-string-in-asp-net – digEmAll
La medición del tamaño de una cadena para un sitio web suena cuestionable. No hay forma de saber qué tamaño de navegador mostrará la fuente AFAIK. – davisoa
Una fuente específica no es suficiente para saber esto. También necesita saber qué representador mostrará el texto. Por ejemplo, Apple y MS procesan el texto de manera muy diferente, y no me sorprendería si eso afectara el ancho gráfico de un texto. Si intentas obtener el ancho del texto que se muestra en html en el lado del servidor (como parecen implicar tus etiquetas), eso probablemente no sea posible. – CodesInChaos