2011-03-17 93 views
0

我正在爲圖像文件繪製標籤。除了字體大小外,這一切都很完美。ASP.net無法獲取字體大小

gfx.DrawString(
    thisTempLabel.LabelText, 
    new System.Drawing.Font(
     thisTempLabel.LabelFont, 
     (float)thisTempLabel.fontSize 
    ), 
    Brushes.Black, 
    new PointF(thisTempLabel.x, thisTempLabel.y) 
); 

問題是我的用戶在PX中選擇字體大小,而System.Drawing.Font需要EM大小。我不知道如何解決這個問題!

我可以使用像素渲染文本嗎?

+1

PX轉EM轉換器? - http://pxtoem.com/ – Martin 2011-03-17 17:38:38

+0

@Martin謝謝,但我需要一個通用公式,我認爲:s – 2011-03-17 17:39:39

+0

我同意馬丁,只是將px值轉換爲EM,你應該很好。 – 2011-03-17 17:40:43

回答

3

只需使用1 em = 16像素。所以:

14px: 1/16 * 14 = 
13px: 1/16 * 13 = 
100px: 1/16 * 100 = 
+0

這些都出來小......((float)thisTempLabel.fontSize)*(float)0.0625)' – 2011-03-17 17:47:20

5

終於想出瞭如果任何人有同樣的問題:

System.Drawing.Font MyFont = new System.Drawing.Font(
    thisTempLabel.LabelFont, 
    ((float)thisTempLabel.fontSize), 
    FontStyle.Regular, 
    GraphicsUnit.Pixel 
); 

GraphicsUnit.Pixel夠了!