我正在使用.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
类手动完成此操作。