10

在 WPF中无法关闭抗锯齿。但是我想在 WPF 字体很小的时候消除它们的模糊外观。

一种可能性是使用 .net 2.0 组件。这看起来会失去透明度功能和混合支持。虽然从未尝试过。

有人对此有解决方案吗?它有什么缺点吗?

谢谢

4

6 回答 6

9

可以使用以下选项从 WPF 4.0 开始关闭 Anti-Alias:

TextOptions.TextFormattingMode="Display"
于 2011-08-04T14:39:38.740 回答
3

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

2012 年 11 月更新:这个问题和答案已有 4 年历史。此后,文本呈现在 WPF 中得到了改进。请不要将 WinForms 控件放在 WPF 应用程序中;这是修复字体渲染的一种骇人听闻的方式。它不再需要了。

于 2008-08-22T16:28:35.890 回答
1

SnapsToDevicePixels 对文本渲染绝对没有影响。

于 2008-11-10T11:32:48.637 回答
1

微软在这里有一个专门介绍 WPF 中的文本渲染的博客 WPF Text Blog

.NET 4.0 中的情况肯定有所改善。

于 2011-06-23T01:32:58.757 回答
0

将您绘制的、您不想抗锯齿的对象偏移 0.5 像素。这将导致绘图引擎实际像素上绘制,而不是在像素边缘绘制(这是默认设置)。在像素边缘绘制时,抗锯齿通常发生在周围像素上。

这类似于 Mac 上的 Quarts 绘图。

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

于 2009-10-04T01:46:19.263 回答
-3

尝试在窗口的 UI 元素上使用UIElement.SnapsToDevicePixels属性。人们倾向于报告它最适合图形和线条,但我注意到它在文本渲染方面也有所改进。

于 2008-08-27T19:31:41.073 回答