MeasureString 不准确

我在将字符串(含中文)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


梵蒂冈之花
浏览 746回答 2
2回答

千巷猫影

MeasureString默认情况下确实要偏大一点,需要额外设置stringFormat,举个例子e.Graphics.MeasureString(text, Font,1000,StringFormat.GenericTypographic)这样就能正确测量了。
打开App,查看更多内容
随时随地看视频慕课网APP