当我将字符串绘制到缓冲区中时,生成的输出并未按照我期望的方式进行抗锯齿处理。此代码说明了问题...只需将其放入标准智能设备项目的 Form1.cs 中即可:
protected override void OnPaint(PaintEventArgs e)
{
Bitmap buffer = new Bitmap(Width, Height, PixelFormat.Format32bppRgb);
using(Graphics g = Graphics.FromImage(buffer))
{
g.Clear(Color.White);
g.DrawString("Hello, World", Font, new SolidBrush(Color.Black), 5, 5);
}
e.Graphics.DrawImage(buffer, 0, 0);
}
另一方面,如果我只是将字符串绘制到随 PaintEventArgs
传入的 Graphics 对象中,它就会按照我的预期以 ClearType 呈现。
我认为我必须以某种方式创建图形缓冲区,使其使用字体平滑,但我没有找到方法来做到这一点。
最佳答案
事实证明这是一个简单的问题。通过删除 PixelFormat.Format32bppRgb ,它工作得很好。看起来您需要确保缓冲区具有相同的像素格式...
关于compact-framework - 如何在 Compact Framework 上使用带有双缓冲的 ClearType?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1187945/