在WPF中无法关闭反锯齿。但是当WPF字体很小时,我想要去除它们的模糊外观。
一个可能的解决方案是使用.NET 2.0组件。这看起来会失去透明度和Blend支持的功能。虽然从未尝试过。
有人有解决办法吗?有什么缺点吗?
谢谢
从WPF 4.0开始,可以使用以下选项关闭反锯齿功能:
TextOptions.TextFormattingMode="Display"
你尝试过在WPF窗口/控件上放置WindowsFormsHost控件吗?这将允许WPF呈现WinForms控件。
更新于2012年11月:此问题和答案已有4年历史。WPF中的文本呈现已经得到改进。请不要在WPF应用程序中放置WinForms控件;那是一种hackish修复字体呈现的方法。它已不再需要。
SnapsToDevicePixels对文本渲染没有任何影响。
偏移您绘制的对象,如果您不希望其进行抗锯齿处理,则偏移0.5像素。这将导致绘图引擎在实际像素上绘制,而不是在像素边缘上绘制(这是默认设置)。在像素边缘上绘制时,通常会在周围像素上进行抗锯齿处理。
这类似于Mac上的Quarts绘图。
编辑:抱歉,我没有仔细阅读问题。这对字体无效,只适用于形状。但我将保留此评论以供参考。
尝试在窗口的UI元素上使用UIElement.SnapsToDevicePixels属性。人们倾向于报告它对图形和线条的效果最佳,但我也注意到它在文本渲染方面有所改进。