2011-11-01 98 views
1

我想知道是什麼導致了以下問題:如果我創建一個新的字體,點的指定大小,然後測量一個字符串 - 在點再次,我得到兩個不同的值?Windows C#字體大小計算

 Font font = new Font("Arial", 36, GraphicsUnit.Point); 

     Graphics g = CreateGraphics(); 

     g.PageUnit = GraphicsUnit.Point; 

     string str = "hello"; 

     SizeF size = g.MeasureString(str, font); 

size.height == 44而不是36,它是字體的指定的PT大小!!

怎麼回事!!!

回答

0

看看這個link。額外的空間可能是不同的大小

的MeasureString方法是專爲個人串 使用的原因,包括之前和字符串 後的額外的少量空間以允許懸垂字形

1

MeasureString填充返回的矩形以允許突出和懸垂的字符。這表明通過MeasureString返回一個典型的矩形:

enter image description here

所以很自然返回高度將比點的字體指定的大小。

+0

+1爲圖像 – iraSenthil

+0

@iraSenthil:那麼爲什麼我仍然在0這裏? :) – MusiGenesis

+0

在這裏你得到它;)感謝隊友。 –