我使用.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