2011-03-17 76 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够了!