我正在使用 .NETCF (Windows Mobile)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
类手动执行此操作。