我的表单中有一个文本框,我正在向其中绘制一个字符串,如下所示。
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));
文本框中显示的字符串。然后我尝试了下面的代码
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);
问题来了。即使两种方法使用相同的字体g.DrawString()
,TextRenderer.DrawText()
字体样式也存在差异。那就是某些字符的呈现方式不同。如果我在字体中使用“1”而不是“128”,这两种方法都会将字符呈现为唯一的。
如果我更改GdiCharSet(128)
字体的值,在使用g.DrawString()
方法时将没有效果。我的问题是为什么 g.DrawString()
方法会排除GdiCharSet
价值?