技术背景
在Windowsclient.net上有一篇有关WPF文本渲染的深入文章,来自一个WPF文本程序管理器:WPF中的文本清晰度。
问题归结为WPF,需要线性缩放的字体渲染器来平滑动画。另一方面,Pure ClearType在字体方面具有相当大的自由度,可将垂直词干推入下一个像素。
如果人们比较经典的“层叠”模式,则差异是显而易见的。WinForms位于左下方,WPF位于右上方:
虽然我也不喜欢WPF的字体渲染特质,但我可以想象一下,如果动画像Winforms级联中那样跳跃,就会大声疾呼。
玩注册表
我特别感兴趣的是MSDN文章“ ClearType注册表设置 ” 的链接,该文章解释了注册表中用户端的可能调整:
- ClearType级别:子像素提示量
- 伽玛水平
- 像素结构:显示像素中的颜色条纹如何排列
- 文本对比度:调整字形茎的宽度以使字体更重
使用这些设置并不能真正改善根本问题,但可以通过减少敏感用户的色斑效应来提供帮助。
另一种方法
Text Clarity文章提供的最佳建议是增加字体大小和更改字体。Calibri对我来说比标准Segoe UI更好。由于它作为Web字体的流行性,我也尝试了Verdana,但是它在14pt和15pt之间的重量变化很大,在设置字体大小的动画时非常明显。
WPF 4.0
WPF 4将改进对影响字体渲染的支持。WPF文本博客上有一篇文章介绍了所做的更改。最突出的是,现在(至少)存在三种不同类型的文本呈现:
<grumble>对于每个设计师来说,这应该足够了。</ grumble>