C#绘图文字

时间:2011-03-03 17:32:22

标签: c# asp.net system.drawing font-size

gfx.DrawString(
    thisTempLabel.LabelText,
    new Font("Arial", (float)thisTempLabel.fontSize),
    Brushes.Black,
    new PointF(thisTempLabel.x, thisTempLabel.y)
    );

除了我以字母为单位存储字体大小(thisTempLabel.fontSize)之外,这种方法很好。我不能为我的生活找出如何转换它们(可能是不可能的)或者如何解决这个问题。

它们的出现是正确的,但不是在正确的位置有点过分。

精确度非常重要。

1 个答案:

答案 0 :(得分:2)

我认为您遇到的问题可能是constructor you're using期望大小为分数:

public Font(FontFamily family, float emSize)
  

emSize
  类型:System.Single
  新字体的em-size(以磅为单位)。

看起来use a different overload可以GraphicsUnit参数,您可以将其设置为GraphicsUnit.Pixel

gfx.DrawString(
    thisTempLabel.LabelText,
    new Font("Arial", (float)thisTempLabel.fontSize, GraphicsUnit.Pixel),
    Brushes.Black,
    new PointF(thisTempLabel.x, thisTempLabel.y)
);

请注意,您正在设置em尺寸,大致是“M”字符的高度。