我使用.NETCF(Windows Mobile)Graphics
类和DrawString()
方法将单个字符呈现在屏幕上。Graphics.DrawString()的中心文本输出
问题是我似乎无法正确地居中。无论我为字符串渲染位置的Y坐标设置了什么,它总是低于此值,而文本大小越大,Y偏移量越大。
例如,在文本大小12,偏移量是约4,但在32偏移量为约10。
我想要的字符垂直占用大部分矩形的它被吸入并居中水平。这是我的基本代码。 this
所引用它在被抽中的用户控制。
Graphics g = this.CreateGraphics();
float padx = ((float)this.Size.Width) * (0.05F);
float pady = ((float)this.Size.Height) * (0.05F);
float width = ((float)this.Size.Width) - 2 * padx;
float height = ((float)this.Size.Height) - 2 * pady;
float emSize = height;
g.DrawString(letter, new Font(FontFamily.GenericSansSerif, emSize, FontStyle.Regular),
new SolidBrush(Color.Black), padx, pady);
是的,我知道有,我可以代替使用和设置与定心标签控制,但实际上我需要用手工做Graphics
班。
谢谢你展示其他方式来绘制东西,它真的帮助我与中心对齐问题结果TextRenderer.DrawText更精确,然后一个简单的e.graphics.drawstring非常感谢,从我投票:) – 2015-02-03 12:55:53