C# 绘制文本
gfx.DrawString(
thisTempLabel.LabelText,
new Font("Arial", (float)thisTempLabel.fontSize),
Brushes.Black,
new PointF(thisTempLabel.x, thisTempLabel.y)
);
这工作正常,除了我以像素为单位存储字体大小 (thisTempLabel.fontSize
)。我一生都无法弄清楚如何转换它们(可能不可能)或如何解决这个问题。
它们看起来有点正确,但位置不正确,有点太大了。
精度非常重要。
gfx.DrawString(
thisTempLabel.LabelText,
new Font("Arial", (float)thisTempLabel.fontSize),
Brushes.Black,
new PointF(thisTempLabel.x, thisTempLabel.y)
);
This works fine, except I store my font size (thisTempLabel.fontSize
) in pixels. I can't for the life of me work out how to convert them (probably impossible) or what to do to resolve this.
They come out sort of right, but not in the right position by a bit and a bit too big.
Precision is very important.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为您遇到的问题可能是您正在使用的构造函数 期望大小以磅为单位:
看起来您可以使用需要
GraphicsUnit 的不同重载
参数,您可以将其设置为
GraphicsUnit.Pixel
:请注意,您正在设置 em 大小,大致为“M”字符的高度。
I think the issue you're having might be that the constructor you're using expects the size to be in points:
It looks like you can use a different overload that takes
GraphicsUnit
parameter, which you can set toGraphicsUnit.Pixel
:Note that you're setting the em size, which is, roughly, the height of the "M" character.