使用GDI+在玻璃上绘制文本:
马克的建议是,您无法遵循用户对文本呈现的偏好(即"
换句话说,如果您正在玻璃上进行渲染,则必须使用以下方法覆盖文本呈现:
否则,您应该将
graphics.DrawString(s, Length(s), font, MakePointF(x, y), brush);
你会注意到ClearType启用的文本在玻璃上绘制得非常不好:
然而,如果禁用了玻璃,则文字会变得更加清晰:
作为比较,这里是抗锯齿字体平滑:
这里没有字体平滑:
注意: 在您的显示器上,没有字体平滑看起来比它实际要好,因为StackOverflow会调整图片大小。
如何在玻璃上绘制ClearType文本?
备注
- Win32本地化
- 非.NET(即本地化)
- 不是Winforms(即本地化)
- GDI+(即本地化)
马克的建议是,您无法遵循用户对文本呈现的偏好(即"
SystemDefault
")。ClearType在玻璃上不起作用,您不能使用它。换句话说,如果您正在玻璃上进行渲染,则必须使用以下方法覆盖文本呈现:
graphics.SetTextRenderingHint(TextRenderingHintAntiAliasGridFit);
否则,您应该将
TextRenderingHint
保留在其默认值 TextRenderingHintSystemDefault
。