[英]WPF Anti aliasing workaround
在 WPF 中无法关闭抗锯齿。 但是我想在 WPF 字体很小的时候去除它们的模糊外观。
一种可能性是使用 .net 2.0 组件。 这看起来会失去透明度功能和混合支持。 虽然从未尝试过。
任何人都有解决方案? 它有什么缺点吗?
谢谢
从 WPF 4.0 开始,可以使用以下选项关闭抗锯齿:
TextOptions.TextFormattingMode="Display"
您是否尝试将WindowsFormsHost控件放在 WPF 窗口/控件上? 这将允许 WPF 呈现 WinForms 控件。
2012 年 11 月更新:这个问题和答案已有 4 年历史。 文本渲染在 WPF 中得到了改进。 请不要在 WPF 应用程序中放置 WinForms 控件; 这是一种修复字体渲染的黑客方法。 不再需要它了。
SnapsToDevicePixels 对文本渲染绝对没有影响。
微软有一个专门介绍 WPF 中的文本渲染的博客 WPF Text Blog
.NET 4.0 中的情况肯定有所改善。
将您绘制的对象偏移 0.5 像素,这些对象不想被抗锯齿。 这将导致绘图引擎绘制的实际像素,而不是在像素的边缘(这是默认的)绘图。 当在像素的边缘绘制时,抗锯齿通常发生在周围的像素上。
这类似于 Mac 上的 Quarts 绘图。
编辑:对不起,我没有阅读问题。 这不适用于字体,仅适用于形状。 不过,我会在这里留下评论以供参考。
尝试在窗口的 UI 元素上使用UIElement.SnapsToDevicePixels属性。 人们倾向于报告它最适合图形和线条,但我也注意到它在文本渲染方面的改进。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.