Windows XP上WPF的可视化问题

3
我们有一个巨大的WPF .NET 4.0项目,应支持Windows XP SP3及以上版本。 (因此使用.NET 4.0)它在Windows 7和8 / 8.1上没有任何问题。 但是,在Windows XP上运行时,我们遇到了严重的视觉问题,以至于应用程序无法使用。
我搜索了很多并发现了一些类似的问题,例如这个,但是没有一个建议的解决方案适用于我们。
这里是在Windows XP SP3上拍摄的屏幕截图:
On Windows XP
奇怪的是,您在屏幕截图中看到的“28” TextBlock的克隆位于其左侧。 除了名称以外,它们具有完全相同的内容,但是左侧的那个没有正确呈现!
这是它真正的样子(在Windows 8.1测试机器上拍摄):
On Windows 8.1
有些页面甚至更糟:
Calendar
当我从主窗口中删除AllowsTransparency时,在XP上它看起来像这样:(请注意,标题栏不再有问题)
No Transparency
我们真的被卡住了,对其原因一无所知。 任何帮助将不胜感激。

我认为WinXP机器上的透明度是主要根本原因之一。他们甚至已经发布了像这样的热修复程序:http://support2.microsoft.com/kb/975796。每台机器上的GFX卡都会产生许多不同的结果。只需在Google上搜索“transparency with windows xp wpf”,您可能会找到一些有用的东西。 - Kcvin
1
你是否正在使用cached composition?我注意到在WPF中,当你消耗大量VRAM时,视觉伪影更容易出现,而最简单的方法就是使用缓存和效果。如果可以的话,请使用WPF性能分析工具(特别是Perforator)运行应用程序,并查看视频内存使用情况。同时要注意SW/HW IRTs。 - Mike Strobel
@MikeStrobel 但是,当VRAM已满时,WPF是否会自动回退到软件渲染并使用RAM? - SepehrM
在理论上也许可以,但是根据我的经验,事情经常会出现问题,你最终可能会遇到不匹配的纹理、严重的伪影和其他各种视觉问题。至少在运行Windows XP时是这样的。增加VRAM有帮助吗? - Mike Strobel
@MikeStrobel 不完全是。但它与显卡有关。如果不是你的帮助,我不会怀疑这一点。 - SepehrM
显示剩余2条评论
1个回答

1
似乎这个问题与显卡有关。在另一台使用了不同显卡加速器的虚拟机中,我们没有遇到任何主要的问题。在有问题的测试机器上,我们将硬件加速降至第三级,问题就解决了。
显示属性 -> 设置 -> 高级 -> 故障排除
降低硬件加速
尽管仍然存在一些鼠标悬停动画方面的小问题,并且我们失去了光标加速带来的好处,但对于我们来说还是可以接受的,因为 Windows XP 不需要太多。

@ErnodeWeerd 这只是一个虚拟机。WMware 负责其图形加速,而我不是虚拟化专家。 - SepehrM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接