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

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

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

谢谢

有帮助吗?

解决方案

你有没有尝试过放一个 Windows窗体主机 WPF 窗口/控件上的控件?这将允许 WPF 呈现 WinForms 控件。

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

其他提示

从 WPF 4.0 开始,可以使用以下选项关闭抗锯齿:

TextOptions.TextFormattingMode="Display"

SnapsToDevicePixels 对文本渲染完全没有影响。

Microsoft 在此处有一个专门讨论 WPF 中文本渲染的博客 WPF 文本博客

.NET 4.0 中的情况确实有所改善。

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

这类似于 Mac 上的 Quarts 绘图。

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top