使用gdi+在玻璃上绘制文本:
graphics.DrawString(s, Length(s), font, MakePointF(x, y), brush);
您会注意到启用ClearType的文本会绘制 非常 玻璃不良:
当然,如果禁用了Glass,文本将绘制得很好:
通过比较,这里是 反混叠字体平滑 :
这里是 无字体平滑 :
注释 :没有字体平滑看起来比实际效果更好,因为StackOverflow会调整监视器上图像的大小。
我如何在玻璃上绘制清晰的文字?
Mark的建议是您不能满足用户对文本呈现的偏好(即 SystemDefault “。ClearType在玻璃上不起作用,您不能使用它。
SystemDefault
换句话说,如果要在玻璃上渲染,则必须使用以下选项覆盖文本渲染:
graphics.SetTextRenderingHint(TextRenderingHintAntiAliasGridFit);
否则你应该离开 TextRenderingHint 因为它是默认的 TextRenderingHintSystemDefault .
TextRenderingHint
TextRenderingHintSystemDefault
这个问题是绘图方式固有的。所有文字都是在黑色背景上绘制的,然后合成到玻璃背景上;半透明的字体平滑与黑色结合在一起,使其接近黑色。