我在将字符串(含中文)Draw到一幅图片上时发现这个问题的。比如一幅图片的宽是400pixel,Graphics对象g的GraphicUnit是Pixel,我要画到图上的字符串是str,我用g.MeasureString(str.SubString(0,i),font)来计算前i个字符的宽度width.当width大于宽度时,停止循环,并将前i个字符画到图片上,查看画完的图片发现图上前i个字符的后面还有很大一段空白(前i的字符的宽度明显小于图片的宽),我这样用MeasureString没问题吧,还是.net的BUG? 因为是用在网页上的,所以也没法调用Windows API
2 回答
千巷猫影
TA贡献1829条经验 获得超7个赞
MeasureString默认情况下确实要偏大一点,需要额外设置stringFormat,举个例子
e.Graphics.MeasureString(text, Font,1000,StringFormat.GenericTypographic)
这样就能正确测量了。
- 2 回答
- 0 关注
- 745 浏览
添加回答
举报
0/150
提交
取消