在指定宽度下测量文本的高度

5
如何计算在指定宽度内换行的文本所需的高度?
我在Graphics中找到了以下方法。
graphicsObj.MeasureString(text, font, width);

但它需要一个Graphics实例,而此时我没有图形实例。实际上,我更喜欢使用静态方法来查找高度。TextRenderer.MeasureText(..)可能是一个选择,但它缺少一个提议宽度的参数。
2个回答

13

你需要的是以下这个重载和标志:

var size = TextRenderer.MeasureText(text, font, new Size(width, height), TextFormatFlags.WordBreak);

为了准确性,你应该尝试使用接受设备上下文的重载之一。


你在 Size 构造函数的第三个参数中传递的是什么高度? - Ahmad
1
提议的渲染矩形的高度,如果您不知道或不关心,请传递0。 - Alex K.

0
var size = TextRenderer.MeasureText(FieldValue, InvoiceFont, new Size(105, 16), TextFormatFlags.WordBreak);
RectangleF rectF1 = new RectangleF(xProductName, CurrentY, size.Width, size.Height);
g.DrawString(FieldValue, InvoiceFont, Brushes.Black, rectF1);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接