我有一个这样的字符串:
string s = "This is my string";
我正在创建一个Telerik报告,我需要定义一个textbox
,这是我的字符串的宽度。但是,size属性需要设置为Unit(Pixel,Point,Inch等)。如何将我的字符串长度转换为Pixel,以便我可以设置宽度?
编辑:我尝试过获取图形对象的引用,但这是在继承自Telerik.Reporting.Report
的类中完成的。
答案 0 :(得分:60)
不使用控件或表格:
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
答案 1 :(得分:19)
Size textSize = TextRenderer.MeasureText("How long am I?", font);
答案 2 :(得分:12)
在这种情况下,我通常使用一种肮脏但简单的方法:
Label
,其AutoSize
属性为true
- 脏工作 - 。Width
,我会将其设置为Label.Text
。Width
的{{1}}会给我正确的价值。答案 3 :(得分:4)
您可以使用MeasureString()
方法创建图形对象的实例。但是你需要传递字体名称,字体大小和其他信息。
答案 4 :(得分:4)
也取决于字体。字符串长度不够。