.net 使用NOPANDING选项的MeasureText文本的边界框大小错误
我需要得到一个真正的边界框,从各个方向都没有填充。我需要它来把单词包装成矩形。不幸的是,它不能像我想要的那样工作。我在网上搜索了很多。提前谢谢 //编辑 我发现,使用其他重载函数MeasureText,在这里我也发送e.Graphics,我得到了更好的结果,但并不完全是我想要的 那么,有没有办法将其钳制为裸骨文本矩形?我有一个想法,把它画成位图,检查顶部的彩色像素等等,然后做一个矩形,但我想这会很慢.net 使用NOPANDING选项的MeasureText文本的边界框大小错误,.net,vb.net,text,bounding-box,measurement,.net,Vb.net,Text,Bounding Box,Measurement,我需要得到一个真正的边界框,从各个方向都没有填充。我需要它来把单词包装成矩形。不幸的是,它不能像我想要的那样工作。我在网上搜索了很多。提前谢谢 //编辑 我发现,使用其他重载函数MeasureText,在这里我也发送e.Graphics,我得到了更好的结果,但并不完全是我想要的 那么,有没有办法将其钳制为裸骨文本矩形?我有一个想法,把它画成位图,检查顶部的彩色像素等等,然后做一个矩形,但我想这会很慢 您必须使用pinvoke GetTextExtentPoint32。我已找到此链接,但不知道
您必须使用pinvoke GetTextExtentPoint32。我已找到此链接,但不知道如何使其工作。你能帮我做这个吗?谢谢,洛蒂更新了问题。
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)