【问题标题】:ASP.net can't get font size rightASP.net 无法正确获取字体大小
【发布时间】:2011-07-17 14:36:32
【问题描述】:

我正在为图像文件绘制标签。除了字体大小,一切都完美无缺。

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 大小。我不知道如何解决这个问题!

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

【问题讨论】:

  • PX 到 EM 转换器? - pxtoem.com
  • @Martin 谢谢,但我需要一个我认为的通用公式:s
  • 我同意 Martin 的观点,只需将 px 值转换为 EM 就可以了。
  • 在他的评论中访问他的链接。它为您提供了一个值列表,我相信您可以根据提供的数据构建一个公式。
  • 我宁愿只能在PC中的代码中定义它

标签: c# asp.net fonts size font-size


【解决方案1】:

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

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

【讨论】:

  • 这些都是很小的...((float)thisTempLabel.fontSize) * (float)0.0625)
【解决方案2】:

终于弄清楚是否有人有同样的问题:

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

GraphicsUnit.Pixel 做到了!

【讨论】:

    猜你喜欢
    • 2017-06-23
    • 2012-11-05
    • 2018-06-16
    • 1970-01-01
    • 2015-12-17
    • 2012-02-08
    • 1970-01-01
    • 2014-07-29
    • 2017-01-13
    相关资源
    最近更新 更多