Подтвердить что ты не робот

Как преобразовать длину строки в пиксельный блок?

У меня есть строка вроде этого:

string s = "This is my string";

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

Ответ 5

Также зависит от шрифта. Строковая длина недостаточна.