Aero:如何在Glass上绘制ClearType文本?

时间:2010-11-23 16:29:37

标签: aero cleartype aero-glass

使用GDI +在玻璃上绘制文字:

graphics.DrawString(s, Length(s), font, MakePointF(x, y), brush);

您会注意到启用ClearType的文字在玻璃上绘制非常

alt text

但是当玻璃禁用时,文字当然可以画得很好:

alt text

通过比较,这里是反别名字体平滑

alt text

这里是没有字体平滑

alt text

注意:没有字体平滑看起来比实际更好,因为StackOverflow会调整显示器上图像的大小。

如何在Glass上绘制ClearType文本?

备注

  • Win32 native
  • 不是.NET( native)
  • 不是Winforms( native)
  • GDI +( ie。 native)

Mark建议您不能遵守用户对文字渲染的偏好(即“SystemDefault”。ClearType在玻璃上不起作用,您无法使用它。

换句话说,如果你在玻璃上渲染,你必须用:

覆盖文本渲染
graphics.SetTextRenderingHint(TextRenderingHintAntiAliasGridFit);

否则,您应将TextRenderingHint保留为默认TextRenderingHintSystemDefault

另见

1 个答案:

答案 0 :(得分:2)

问题是执行绘图的方式所固有的。所有文字都是在黑色背景上绘制的,然后合成到玻璃背景上;半透明字体平滑与黑色相结合,使近黑色。