我有一个这样的字符串:如何将字符串长度转换为像素单位?
string s = "This is my string";
我创建一个Telerik的报告,我需要定义一个textbox
这是我的字符串的宽度。然而,尺寸属性需要设置为单位(像素,点,英寸等)。我怎样才能把我的字符串长度转换成像素,这样我就可以设置宽度了?
编辑:我试图获得对图形对象的引用,但是这是在继承自Telerik.Reporting.Report
的类中完成的。
我有一个这样的字符串:如何将字符串长度转换为像素单位?
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
您可以使用MeasureString()
方法创建图形对象的实例。但是你需要传递它的字体名称,字体大小和其他信息。
我有字体名称,大小等我已经看过MeasureString方法,但无法弄清楚如何创建一个图形对象引用。我没有形式或控制,我只是想在课堂上弄清楚这一点。 – ScottG 2009-01-16 20:44:00
也取决于字体。字符串长度不够。
Size textSize = TextRenderer.MeasureText("How long am I?", font);
在这种情况下,我通常使用一个肮脏的,但简单的方法:
Label
它的AutoSize
财产是true
- 肮脏的工作 - 。Width
时,我将它设置为Label.Text
。Label
的Width
会给我正确的价值。
似乎我认为MeasureString应该是一种静态方法。 – Kibbee 2009-01-16 20:56:53
@Kibbee`MeasureString`需要一个`Graphics`,因为它考虑到了当前的图形转换。 – 2012-05-14 10:25:51