如何获取字符串的宽度
How to get string's width
编辑
图形来自内存中的 Pdf,但我不确定如何将其与图形一起使用 class...
不确定这个答案中的 e Get System.Drawing.Font width?
- 这是我正在处理的图书馆项目 - 不是 Windows 表格。
第一个问题
正在尝试使用此方法获取字符串的宽度,
public static void GetStringWidth(string measureString)
{
Font stringFont = new Font("Arial", 16);
SizeF stringSize = new SizeF();
stringSize = Graphics.MeasureString(measureString, stringFont);
double width = stringSize.Width;
Console.WriteLine(width);
}
但是出现错误,
non-static 字段、方法或 属性 'System.Drawing.Graphics.MeasureString(string, System.Drawing.Font)'
需要对象引用
MeasureString 不是静态方法。您将需要使用 Graphics 实例来访问它。
例如:
private void MeasureString(PaintEventArgs e)
{
string measureString = "Measure String";
Font stringFont = new Font("Arial", 16);
SizeF stringSize = new SizeF();
stringSize = e.Graphics.MeasureString(measureString, stringFont);
}
如果您要引用 System.Windows.Forms,请改用 TextRenderer class,这将使您不必使用 Graphics 对象。
private void MeasureText()
{
String text1 = "Some Text";
Font arialBold = new Font("Arial", 16);
Size textSize = TextRenderer.MeasureText(text1, arialBold);
}
更新:
您可以使用假图像来使用 Graphics 测量字符串,因为我们不能在 class 库中使用 CreateGraphics:
private void MeasureString()
{
string measureString = "Measure String";
Font font = new Font("Arial", 16);
Image fakeImage = new Bitmap(1,1);
Graphics graphics = Graphics.FromImage(fakeImage);
SizeF size = graphics.MeasureString(measureString, font);
}
编辑
图形来自内存中的 Pdf,但我不确定如何将其与图形一起使用 class... 不确定这个答案中的 e Get System.Drawing.Font width?
- 这是我正在处理的图书馆项目 - 不是 Windows 表格。
第一个问题
正在尝试使用此方法获取字符串的宽度,
public static void GetStringWidth(string measureString)
{
Font stringFont = new Font("Arial", 16);
SizeF stringSize = new SizeF();
stringSize = Graphics.MeasureString(measureString, stringFont);
double width = stringSize.Width;
Console.WriteLine(width);
}
但是出现错误,
non-static 字段、方法或 属性 'System.Drawing.Graphics.MeasureString(string, System.Drawing.Font)'
需要对象引用MeasureString 不是静态方法。您将需要使用 Graphics 实例来访问它。
例如:
private void MeasureString(PaintEventArgs e)
{
string measureString = "Measure String";
Font stringFont = new Font("Arial", 16);
SizeF stringSize = new SizeF();
stringSize = e.Graphics.MeasureString(measureString, stringFont);
}
如果您要引用 System.Windows.Forms,请改用 TextRenderer class,这将使您不必使用 Graphics 对象。
private void MeasureText()
{
String text1 = "Some Text";
Font arialBold = new Font("Arial", 16);
Size textSize = TextRenderer.MeasureText(text1, arialBold);
}
更新:
您可以使用假图像来使用 Graphics 测量字符串,因为我们不能在 class 库中使用 CreateGraphics:
private void MeasureString()
{
string measureString = "Measure String";
Font font = new Font("Arial", 16);
Image fakeImage = new Bitmap(1,1);
Graphics graphics = Graphics.FromImage(fakeImage);
SizeF size = graphics.MeasureString(measureString, font);
}