Un altro modo per farlo è con un TextRenderer
e chiamare suo metodoMeasureString
, passando la stringa e il tipo di font.
MSDN Esempio:
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: Questa è solo una soluzione alternativa alla (ugualmente valido) quello già inviato da @Neil Barnwell (nel caso in cui avete già un riferimento al sistema .Windows.Forms nel tuo progetto, questo potrebbe essere più conveniente).
Potrebbe essere unito a questo: http://stackoverflow.com/questions/5553965/programmatically-measure-string-in-asp-net – digEmAll
Misurare la dimensione di una stringa per un sito Web sembra discutibile. Non c'è modo di dire quale dimensione il browser mostrerà il carattere AFAIK. – davisoa
Un carattere specifico non è sufficiente per sapere questo. Devi anche sapere quale renderer mostrerà il testo. Ad esempio, Apple e MS rendono il testo in modo molto diverso e non sarei sorpreso se ciò influisse sulla larghezza grafica di un testo. Se si tenta di ottenere la larghezza del testo visualizzato in html sul lato server (come sembrano suggerire i tag) è molto probabile che non sia possibile. – CodesInChaos