Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 使用NOPANDING选项的MeasureText文本的边界框大小错误_.net_Vb.net_Text_Bounding Box_Measurement - Fatal编程技术网

.net 使用NOPANDING选项的MeasureText文本的边界框大小错误

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

我需要得到一个真正的边界框,从各个方向都没有填充。我需要它来把单词包装成矩形。不幸的是,它不能像我想要的那样工作。我在网上搜索了很多。提前谢谢

//编辑

我发现,使用其他重载函数MeasureText,在这里我也发送e.Graphics,我得到了更好的结果,但并不完全是我想要的

那么,有没有办法将其钳制为裸骨文本矩形?我有一个想法,把它画成位图,检查顶部的彩色像素等等,然后做一个矩形,但我想这会很慢


您必须使用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)