由於MFC中CDC有GetTextExtent()能夠得到字符串的高度寬度 像素單位,因此天然想到c#的GDI+的MeasureString,這個一樣是測量字符串高度寬度,可是這個不一樣於CDC,他不適用CDC.GetTextExtent()的適用領域,GDI+ MeasureString會本身處理矩形區域,返回這個矩形區域SizeF,這就是爲何是浮點而不是整數,它根本就不是字符串準確的高度寬度。 舉個例子:給定字符串s,用Graphics的MeasureString獲取高度寬度sizeF,並在一個給定的起點顯示以sizeF爲高度寬度的矩形大小和字符串shtml
以100,400座標位奇點繪製sizeF大小的矩形 和 字符串 改sizeF是測量該字符串獲得的。c#
效果以下:(沒處理顯示質量 這個不是重點)注意'g'和'串'post
說明Gdi+的MeasureString跟CDC的GetTextExtent徹底不同 GDI+在字符串四周添加一些長度,以適應字符串絕對能夠被測量獲得的SizeF包裹住,並且在末尾添加的更多空白,大概是想包裹住文字單擊時的鼠標狀態。this
相似上面的代碼,使用TextRender的MeasureText精確得到包裹字符串的區域,效果以下:spa
區別在於字符串末尾增寬 和 對英文字符下部的增寬處理。orm