当文本换行为固定宽度时,为什么 MeasureString 返回不正确的文本字符串高度?
var labelFont = new Font("Courier New", 11, FontStyle.Bold);
StringFormat format = StringFormat.GenericTypographic;
format.FormatFlags |= StringFormatFlags.MeasureTrailingSpaces;
var size = g.MeasureString("This is a very very very very very very very very very long string", labelFont, 300, format);
size.Height
给出的值不正确。我发现我需要取返回高度的大约 1/3 才能得到类似于真实高度的东西。
我正在尝试将文本字符串绘制到背景图像上;所以我需要知道换行文本的高度,以便知道下一个文本字符串的原点 y 值。
此代码正在 ASP.NET Web 应用程序中使用。
最佳答案
您的 MeasureString
调用指定字符串的最大宽度为 300
。这意味着非常长的字符串被分成多行,这会导致计算出的字符串高度更高。
请注意,字符串的最大宽度不是以字符为单位,而是以像素为单位。
关于c# - 在 C#/.NET 中,Graphics.MeasureString 方法给出的高度不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17952564/