2017-12-09 4 views
0
Bitmap bmpChar = new Bitmap(16,16);  
    FontFamily fontFamily = new FontFamily("Arial"); 

    Font font = new Font(
       fontFamily, 
       16, 
       FontStyle.Regular, 
       GraphicsUnit.Pixel); 


    Graphics g = Graphics.FromImage(testBmp); 
    g.DrawString("test", font, Brushes.Red, 0, 0); 

上のコードでは、16x16の領域に2文字( "t"だけが "test"で、 "t"しかないと思われます)が表示されます。 winformsでビットマップに文字列として描画する際に、文字と数字の長さを一定の幅にする方法は、プラットフォームに依存しない(32ビット、64ビット、NT、XP、7,10)ピクセル単位ですべての文字を同じにして文字列を描画する方法は何ですか?

+1

固定幅フォントであるLucidia ConsoleまたはCourierを試してみてください。 –

+1

モノスペースフォントを使用します。 –

+1

モノスペースフォントを選択します。宅配便、Consolasのように... – jessehouwing

答えて

1

可能であればmonospaced fontを使用します。それ以外の場合は、ラスタライズ後に文字を伸ばしたり、各文字の間に配置するスペースの量を計算しなくてはならず、はるかに複雑になります。

+0

一般的なモノスペースでテストしましたが、16pxで再度テストしました.16x16の領域でtとeの半分をレンダリングしました。モノスペースは、決まった決断を下すことはできないでしょうか? [OK]をサイズ24として使用し、一般的なモノスペースで解決しました。 –