我正在开发WPF应用程序,但我注意到在某些字体大小下,文本的渲染效果不如在“控制面板”->“字体”中看到的示例一样。我正在使用大型Segoe UI字体(FontSize="36"
),并且在竖线上的效果更加明显,例如字母“U”的一侧可能比另一侧稍厚。
)。
在某些字体大小下,例如,字体质量会提高。 FontSize="48"
(我相信它相当于36pt),但是使用有限数量的字体大小并不总是可行的。
我可以通过将以下属性应用于TextBlock来提高字体质量:-
TextOptions.TextFormattingMode="Display" TextOptions.TextRenderingMode="ClearType"
考虑到质量的提高,我很好奇为什么WPF不能对所有文本都这样做,还是取决于性能?我当时正在考虑创建一种全局样式,以将其应用于所有控件,否则会引起问题吗?
(我尝试上传屏幕截图,但是SO必须以低质量存储图像,并且您无法真正找出字体问题)。
最佳答案
这是WPF文本团队撰写的有关此功能的blog post。
请注意TextFormattingMode
:
由于这些属性是.NET 4.0中的新增功能,因此它们将原始WPF算法保留为默认模式,即理想模式。
对于TextRenderingMode
由于Auto
是默认设置,因此通常可以得到ClearType
渲染。
现在,由于这些是附加属性,并且它们继承了,因此您只需将它们设置在根Window
即可。无需创建一堆Style
。
关于wpf - WPF字体质量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13138299/