如何将字符串长度转换为像素单位?
-
19-08-2019 - |
题
我有一个像这样的字符串:
string s = "This is my string";
我正在创建 Telerik 报告,我需要定义一个 textbox
这就是我的绳子的宽度。但是,大小属性需要设置为单位(像素、点、英寸等)。如何将字符串长度转换为像素,以便设置宽度?
编辑: 我尝试获取对图形对象的引用,但这是在继承自的类中完成的 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()
。但是,你需要通过它的字体名称,字体大小等信息。
不隶属于 StackOverflow