Как получить ширину строки - PullRequest
9 голосов
/ 10 октября 2011

Мне нужно создать функцию в библиотеке классов, которая будет принимать строку и определенный шрифт для этой строки, а затем получать ширину строки

Так как же я могу получить ширину границы строки?

Ответы [ 2 ]

15 голосов
/ 10 октября 2011

Другой способ сделать это - с помощью TextRenderer и вызвать его MeasureString метод, передав строку и тип шрифта.

MSDN Пример:

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);  
}

ПРИМЕЧАНИЕ: Это просто альтернативное решение (в равной степени действительное), уже опубликованное @Neil Barnwell (если в вашем проекте уже есть ссылка на System.Windows.Forms, это может быть более удобно).

13 голосов
/ 10 октября 2011

Вы можете получить объект Graphics (используя Control.CreateGraphics () для контейнера, для которого вы хотите текст) и вызвать MeasureString(), чтобы сделать это.Это довольно распространенная техника GDI +.

Дополнительная информация из MSDN: http://msdn.microsoft.com/en-us/library/6xe5hazb.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...