Как я могу преобразовать длину строки в единицу измерения в пикселях?
-
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()
. Но вам нужно будет передать ему имя шрифта, размер шрифта и другую информацию.