フォームに TextBox があり、以下のように文字列を描画しています。
Font myFont = new Font("Arial",18F,FontStyle.Regular,GraphicsUnit.Point,128);
Graphics g = myTextBox.CreateGraphics();
Brush b = new SolidBrush(Color.Red);
g.DrawString("Item Drawn with DrawString",myFont ,b,new PointF(1,1));
TextBox に表示される文字列。次に、以下のコードを試しました
Font myFont = new Font("Arial",18F,FontStyle.Regular,GraphicsUnit.Point,128);
Graphics g = myTextBox.CreateGraphics();
TextRenderer.DrawText(g,"Item Drawn with DrawText",myFont,new Point(1,1),Color.Red);
ここで問題が発生します。2 つの方法g.DrawString()
でTextRenderer.DrawText()
同じフォントを使用していても、フォント スタイルに違いがあります。つまり、一部の文字が異なる方法でレンダリングされます。フォントで「128」の代わりに「1」を使用すると、両方の方法で文字が一意にレンダリングされます。
GdiCharSet(128)
メソッドの使用中にフォントの値を変更してg.DrawString()
も効果はありません。私の質問は、なぜ メソッドが値g.DrawString()
を除外するのですか?GdiCharSet