.NETCF(Windows Mobile)Graphics
クラスとDrawString()
メソッドを使用して、画面に1文字をレンダリングしています。
問題は、それを適切に中央に配置できないように見えることです。文字列レンダリングの場所の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
はい、代わりに使用して中央揃えを設定できるラベルコントロールがあることは知っていますが、実際にはクラスを使用して手動でこれを行う必要があります。