我正在使用一个函数来调用要在区域内呈现的一段文本。
该函数的基本工作原理是:
Dim measureSize as Size
Do
myFont = new Font(myFont.Name, myFont.Size - 1, FontStyle.Regular, GraphicsUnit.Document)
'Initial font size is set insanely high for the moment, during testing.
'Low initial font size is not the problem.
measureSize = g.MeasureString(myString, myFont)
Loop until (measuredSize.width < desiredSize.width AND measuredSize.height < desiredSize.height)
问题在于 MeasureString 在它正在绘制的字符串周围添加了大量空白,并且最终字体渲染得太小。
我确信我记得有人可以摆弄一些参数,以便从 MeasureString 方法中删除所有填充,但我的搜索目前没有发现任何内容。
有谁知道如何使用 MeasureString 来测量字符串的精确大小而没有任何边框?
Pass StringFormat.GenericTypographic
to MeasureString
。我建议不要使用 TextRenderer,因为它在渲染到内存位图时存在清除类型问题。
使用 TextRenderer 进行测量,使用 DrawString 进行绘图,无疑迟早会让你陷入不一致的境地。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)