WPF抗锯齿解决方法

时间:2008-08-22 09:54:44

标签: .net wpf

WPF中的抗锯齿cannot be turned off。但我希望在它们很小的时候删除WPF字体的模糊外观。

一种可能性是使用.net 2.0组件。这看起来会失去透明度和Blend支持。从来没有尝试过。

任何人都有解决方案吗?有什么缺点吗?

谢谢

6 个答案:

答案 0 :(得分:9)

可以使用以下选项启动WPF 4.0来关闭Anti-Alias:

TextOptions.TextFormattingMode="Display"

答案 1 :(得分:3)

您是否尝试在WPF窗口/控件上放置WindowsFormsHost控件?这将允许WPF呈现WinForms控件。

2012年11月更新:此问题与答案是4年。 Text rendering has since improved in WPF。请不要在WPF应用程序中放置WinForms控件;这是修复字体渲染的一种破解方式。它不再需要了。

答案 2 :(得分:1)

SnapsToDevicePixels对文本呈现完全没有影响。

答案 3 :(得分:1)

微软在这里有一个专门用于WPF文本呈现的博客WPF Text Blog

.NET 4.0中的情况有了明显改善。

答案 4 :(得分:0)

将您绘制的对象偏移,不希望被抗锯齿,为0.5px。这将导致绘图引擎在上绘制实际像素,而不是在像素的边缘上绘制(这是默认值)。当在像素的边缘上绘制时,抗锯齿通常发生在周围的像素上。

这类似于Mac上的Quarts绘图。

编辑:对不起,我没有看过这个问题。这不适用于字体,仅适用于形状。不过,我会在此留下评论作为参考。

答案 5 :(得分:-3)

尝试在窗口的UI元素上使用UIElement.SnapsToDevicePixels属性。人们倾向于报告它最适合graphics and lines,但我也注意到文本渲染中的改进也是如此。