C# 如何在位图中找到绘制字符串的宽度

C# 如何在位图中找到绘制字符串的宽度,c#,winforms,C#,Winforms,在位图中绘制字符串时,如何计算字符串的宽度和高度 String s="how are you?"; Sraphic boxgraphic; Bitmap box; boxgrpahic=Graphic.fromimage(box); boxgraphic.DrawString(s, new Font("Arial", 10pt), new SolidBrush(Color.black), new Point(0,0)); 我有一个从pt到像素的转换表,但这不是一个公式 在另一个问题中,回答了这

在位图中绘制字符串时,如何计算字符串的宽度和高度

String s="how are you?";
Sraphic boxgraphic;
Bitmap box;
boxgrpahic=Graphic.fromimage(box);
boxgraphic.DrawString(s, new Font("Arial", 10pt), new SolidBrush(Color.black), new Point(0,0));
我有一个从pt到像素的转换表,但这不是一个公式

在另一个问题中,回答了这个问题,但这是不可行的

点=像素*72/96

如何通过像素(公式)找到绘制字符串的宽度?

在绘制字符串之前,使用其中一个重载获取字符串尺寸

boxgrpahic=graphic.fromimage(box);
var size = boxgraphic.MeasureString(s, new Font("Arial", 10pt));

var widthPixels = size.Width;

boxgraphic.DrawString(s, new Font("Arial", 10pt), new SolidBrush(Color.black), new point(0,0));

使用
graphic.MeasureString(s,新字体(“Arial”,10pt))


您还可以添加一个
StringFormat.genericyprographic
参数以提高精度。

此代码看起来无效-
位图
图形
不是内置类型。你是说
位图
图形
?C#是区分大小写的,你知道……TrueType暗示会击败表格。使用Graphics.MeasureString()。是。。。我不注意那个。。。。