使用NoPadding选项使用MeasureText的文本的边界框大小错误

时间:2014-07-13 16:38:38

标签: .net vb.net text bounding-box measurement

我需要获得真正的边界框,其中根本没有填充(从所有方向)。我需要它将单词包装成矩形。不幸的是它不像我想的那样工作。我在互联网上搜索了很多。提前致谢

//编辑

我想通过其他重载函数MeasureText我也发送了e.Graphics,我得到的更好但不完全是我想要的。

那么有什么方法可以将它钳制到准系统文本矩形?我有一个关于将它绘制到位图并检查顶部彩色像素等等然后制作一个矩形的想法,但我觉得它会很慢。

the wrong bounding box http://i58.tinypic.com/350sz15.png

e.Graphics.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
Dim wordFont As New System.Drawing.Font("Times", 100, FontStyle.Regular)
'Here is the change, I send also e.Graphics
Dim recSize = TextRenderer.MeasureText(e.Graphics, "THE", wordFont,
                                       New Size(Integer.MaxValue, Integer.MaxValue),
                                       TextFormatFlags.NoPadding)

e.Graphics.DrawRectangle(Pens.Red, New Rectangle(0, sum, recSize.Width, recSize.Height))
TextRenderer.DrawText(e.Graphics, "THE", wordFont, New Point(0, 0),
                                      Color.Black, TextFormatFlags.NoPadding)

0 个答案:

没有答案