Как я могу преобразовать длину строки в единицу измерения в пикселях?

StackOverflow https://stackoverflow.com/questions/451903

  •  19-08-2019
  •  | 
  •  

Вопрос

У меня есть строка, подобная этой:

string s = "This is my string";

Я создаю отчет Telerik, и мне нужно определить textbox это ширина моей строки.Однако для свойства size необходимо установить единицу измерения (Пиксель, Точку, Дюйм и т.д.).Как я могу преобразовать длину моей строки, скажем, в пиксель, чтобы я мог установить ширину?

Редактировать: Я попытался получить ссылку на графический объект, но это делается в классе, который наследуется от Telerik.Reporting.Report.

Это было полезно?

Решение

Без использования элемента управления или формы:

using (System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(new Bitmap(1, 1)))
{
    SizeF size = graphics.MeasureString("Hello there", new Font("Segoe UI", 11, FontStyle.Regular, GraphicsUnit.Point));
}

Или в VB.Net:

Using graphics As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(New Bitmap(1, 1))
    Dim size As SizeF = graphics.MeasureString("Hello there", New Font("Segoe UI", 11, FontStyle.Regular, GraphicsUnit.Point))
End Using

Другие советы

Size textSize = TextRenderer.MeasureText("How long am I?", font);

В этом случае я обычно использую грязный, но простой способ:

  • Я добавляю невидимый Label что его AutoSize свойство является true -грязная работа-.
  • Когда я хочу иметь Width для конкретной строки я устанавливаю ее в Label.Text.
  • Тот Самый Width из числа Label даст мне правильное значение.

Зависит также от шрифта. Длина строки недостаточна.

Вы можете создать экземпляр графического объекта, используя метод MeasureString(). Но вам нужно будет передать ему имя шрифта, размер шрифта и другую информацию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top