【发布时间】:2011-05-14 14:04:51
【问题描述】:
使用 GDI+ 在玻璃上绘制文字:
graphics.DrawString(s, Length(s), font, MakePointF(x, y), brush);
您会注意到启用 ClearType 的文本在玻璃上的绘制效果非常很差:
但是在玻璃禁用的情况下,文本当然可以画得很好:
作为比较,这里是抗锯齿字体平滑:
这里是没有字体平滑:
注意:没有字体平滑效果比实际效果更好,因为 StackOverflow 会调整显示器上的图像大小。
如何在玻璃上绘制 ClearType 文字?
注意事项
- Win32 原生
- 不是 .NET(即本机)
- 不是 Winforms(即本机)
- GDI+(即原生)
Mark 的建议是您不能尊重用户对文本呈现的偏好(即“SystemDefault”。ClearType 在玻璃上不起作用,您不能使用它。
换句话说,如果你在玻璃上渲染,你必须覆盖文本渲染:
graphics.SetTextRenderingHint(TextRenderingHintAntiAliasGridFit);
否则,您应该将TextRenderingHint 保留为默认TextRenderingHintSystemDefault。
另见
【问题讨论】:
标签: aero cleartype aero-glass