Как преобразовать длину строки в пиксельный блок?
У меня есть строка вроде этого:
string s = "This is my string";
Я создаю отчет Telerik, и мне нужно определить textbox
, который является шириной моей строки. Однако свойство size должно быть установлено в Единицу (Pixel, Point, Inch и т.д.). Как я могу преобразовать свою длину строки в, скажем, пиксель, чтобы я мог установить ширину?
EDIT: Я попытался получить ссылку на графический объект, но это делается в классе, который наследуется от Telerik.Reporting.Report
.
Ответы
Ответ 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
Также зависит от шрифта. Строковая длина недостаточна.