gfx.DrawString(
thisTempLabel.LabelText,
new Font("Arial", (float)thisTempLabel.fontSize),
Brushes.Black,
new PointF(thisTempLabel.x, thisTempLabel.y)
);
除了我以字母为单位存储字体大小(thisTempLabel.fontSize
)之外,这种方法很好。我不能为我的生活找出如何转换它们(可能是不可能的)或者如何解决这个问题。
它们的出现是正确的,但不是在正确的位置有点过分。
精确度非常重要。
答案 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”字符的高度。