2010-03-08 2 views
5

Я использую этот код для рисования текста в панели:Графика в C# (.NET)

Graphics g = panel1.CreateGraphics(); 
g.DrawString(...); 

Так что я хочу знать, какой размер входной текст будет при визуализации на панели.

ответ

7

Используйте g.MeasureString(), чтобы получить ширину строки в грапическом контексте.

// Set up string. 
string measureString = "Measure String"; 
Font stringFont = new Font("Arial", 16); 

// Measure string. 
SizeF stringSize = new SizeF(); 
stringSize = e.Graphics.MeasureString(measureString, stringFont); 
+0

Ницца, это ново для меня. – Finglas

+0

Несколько моментов, которые я хотел бы очистить: 1) = new SizeF(); здесь нет необходимости; 2) Хорошей практикой является удаление шрифтов (и многих других графических объектов), таких как stringFont.Dispose() или использование инструкции «using». – Zenya

1

Вы также можете использовать TextRenderer.MeasureText, которые иногда проще в использовании, чем MeasureString.

+0

Но это точно, если вы используете TextRenderer.DrawText – Eric