使用 GDI+ 在玻璃上绘制文字:
graphics.DrawString(s, Length(s), font, MakePointF(x, y), brush);
您会注意到启用 ClearType 的文本在玻璃上的绘制效果很差:
但是玻璃禁用了文本,当然,画得很好:
作为比较,这里是Anti-alias 字体平滑:
这里没有字体平滑:
注意:没有字体平滑看起来比实际效果更好,因为 StackOverflow 会调整显示器上的图像大小。
如何在玻璃上绘制 ClearType 文本?
笔记
- Win32 原生
- 不是 .NET(即本机)
- 不是 Winforms(即原生)
- GDI+(即原生)
Mark 的建议是你不能尊重用户对文本渲染的偏好(即“ SystemDefault
”。ClearType 在玻璃上不起作用,你不能使用它。
换句话说,如果您在玻璃上渲染,您必须使用以下命令覆盖文本渲染:
graphics.SetTextRenderingHint(TextRenderingHintAntiAliasGridFit);
否则,您应该将其保留为TextRenderingHint
默认值TextRenderingHintSystemDefault
。