我一直在WPF中编写我的应用程序的新版本。它看起来相当不错但现在我已将它发布给有限数量的测试用户,在他们的一台机器上,GroupBox看起来非常可怕。
据我所知,他们已经安装了正确的.NET版本,所有内容都与我的机器完全相同。
有什么想法吗?
编辑:我们都在运行Windows XP。
更新(2011-8-17):如果受影响的用户关闭硬件加速,看起来已经纠正了。谁知道为什么会这样?我能以任何方式在代码中解决这个问题吗?
答案 0 :(得分:1)
我之前使用Windows窗体应用程序经历了类似的事情。我不记得具体细节,但有问题的用户对我有不同的Windows外观/主题设置(都在XP上运行)与显示器冲突。
答案 1 :(得分:1)
我经历过的一些可能导致这种情况的事情:
答案 2 :(得分:1)
在.NET 4.0中,您可以以编程方式打开软件渲染(What’s New for Performance in WPF in .NET 4)
RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;
在.NET 3.5中(源自Software Rendering Usage in WPF)。这应该在您的视图的Loaded事件中编码
System.Windows.Interop.HwndSource hwndSource = (System.Windows.Interop.HwndSource) PresentationSource.FromVisual(this);
hwndSource.CompositionTarget.RenderMode = System.Windows.Interop.RenderMode.SoftwareOnly;
或者您可以写一些写入注册表的内容
[HKEY_CURRENT_USER\Software\Microsoft\Avalon.Graphics] ("DisableHWAcceleration"=dword:00000000 )
注意:在关闭软件渲染时,您可能会遇到其他问题,例如性能降级,因为它处理填充和透明度(Optimizing Performance: Taking Advantage of Hardware)