我在 C# WPF 中有应用程序(.NET4,应用程序在 Windows XP Embedded 上运行)并且它工作正常,但现在我收到了屏幕截图并且文本周围存在图形错误。这些错误仅出现在文本周围,而不是按钮边缘,也不是 Windows 桌面。
图片:
是图形错误(硬件),还是可以修复的程序错误?
尝试使用:
TextOptions.TextFormattingMode="Display"
哪个应该使用 ClearType。或者你可以试试:
TextOptions.TextRenderingMode="Aliased"
..看看你是否能得到更好的结果
WPF 应该尝试默认使用 ClearType 和抗锯齿,以提供开箱即用的平滑外观。它不能被关闭WPF Anti aliasing workaround。
抗锯齿背后有很多事情要做,比如亚像素抗锯齿。http://blogs.msdn.com/b/text/archive/2009/08/24/wpf-4-0-text-stack-improvements.aspx. 边缘通常与另一种算法混叠,也就是硬件加速:边缘抗锯齿。这可能是您没有边缘问题的原因。出于性能目的,系统会尝试变得智能并使用硬件加速(所有现代 GPU 都提供此类)。你开发的东西似乎是针对某种商业触摸屏设备:比如广场/商场的电子信息亭,或者工厂的一些控制终端,等等。这些通常可以有奇怪的硬件,奇异的 GPU 和主板。振动和环境影响(炎热的白天 - 寒冷的夜晚温度变化复发)可能导致它们出现故障和硬件故障。
我会排除字体文件损坏:这可能会使字体完全无法使用,并且您还报告说其他字体也有奇怪的外观,我不认为所有字体都已损坏。尝试运行软件错误诊断。
是否对文本应用了任何效果?我已经看到将 DropShadowEffect 应用于文本的实例 - 这在某些硬件上渲染得很好,但在其他用户的机器上,文本看起来被破坏了。删除阴影后,它渲染得很好。