我有一个Bitmap对象,我想在其上绘制一些文本。该文本应该针对给定点对齐。这就是我现在这样做的方式:
newBitmap = Image.FromFile(bg) as Bitmap;
Graphics g = Graphics.FromImage(newBitmap);
var cvt = new FontConverter();
String temp = "ddddd"
ftemp = cvt.ConvertFromString("Times New Roman; 12pt") as Font;
SizeF p2Size = TextRenderer.MeasureText(temp, ftemp);
p2Nick = new PointF(PosX - p2Size.Width, PosY);
g.DrawString(temp, ftemp, new SolidBrush(myColor), p2Nick);
问题是我输入的文字越多,距离右侧的距离就越大。
也许有人可以指出我的错误。当然,我简化了很多,但这几乎就是发生了什么。
答案 0 :(得分:0)
使用相同的库测量字符串时,您可能会有更好的运气:
e.g:
SizeF p2Size = g.MeasureString(temp, ftemp);
此外,系统的DPI文本设置会影响结果,您可以考虑到这一点:Graphics.DpiX。
最后,我认为有一个设置TextFormatFlags.NoPadding
可以提供帮助,但如果您切换到StringFormat
,则会使用Graphics.MeasureString()
对象。
答案 1 :(得分:0)
我真的很抱歉提出这个问题 - .-