我在將字符串(含中文)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 關注
- 782 瀏覽
添加回答
舉報
0/150
提交
取消