【发布时间】:2015-03-27 11:08:01
【问题描述】:
如何计算以指定宽度包裹的文本所需的高度?
我在Graphics找到了如下方法
graphicsObj.MeasureString(text, font, width);
但它需要Graphics 的实例,而当时我还没有图形实例。事实上,我更喜欢静态方法来查找高度。 TextRenderer.MeasureText(..) 可能是一个选项,但它缺少建议宽度的参数。
【问题讨论】:
如何计算以指定宽度包裹的文本所需的高度?
我在Graphics找到了如下方法
graphicsObj.MeasureString(text, font, width);
但它需要Graphics 的实例,而当时我还没有图形实例。事实上,我更喜欢静态方法来查找高度。 TextRenderer.MeasureText(..) 可能是一个选项,但它缺少建议宽度的参数。
【问题讨论】:
您需要的重载和标志是:
var size = TextRenderer.MeasureText(text, font, new Size(width, height), TextFormatFlags.WordBreak);
为了准确起见,您应该真正尝试使用接受设备上下文的重载之一。
【讨论】:
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);
【讨论】: