【发布时间】:2011-06-07 04:17:14
【问题描述】:
在我的基于 Win 7 x64 的系统上运行一个内置于 .NET4.0 的应用程序,一切都很好。但是,在 XP SP3 盒子上不是很好。渲染似乎是个问题。边框出现在我不希望它们出现的地方,并且 ItemsControl 中的动态填充项目正在组合框中的值之间切换! 以下是我迄今为止尝试过的。
我一直在处理this 问题并尝试进一步调试。
- 在桌面属性中关闭硬件加速。 (似乎没有任何区别)
- 添加注册表项以关闭硬件加速(似乎没有任何区别)
-
在 MainWindow.Xaml.Cs 上添加以下代码:
受保护的覆盖无效 OnSourceInitialized(EventArgs e) { var hwndSource = PresentationSource.FromVisual(this) as HwndSource; 如果(hwndSource!= null) { hwndSource.CompositionTarget.RenderMode = RenderMode.SoftwareOnly; _log.Debug("成功将渲染模式设置为软件");
_log.Debug("WPF Tier = {0}", RenderCapability.Tier / 0x10000); } base.OnSourceInitialized(e); }
日志显示 Tier 为 0。这个 XP SP3 盒子似乎有 DirectX 9.0c。 4.在App.xaml.cs中添加如下代码:
protected override void OnStartup(StartupEventArgs e)
{
RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;
}
我不确定还可以尝试什么。欢迎任何帮助!
谢谢,
【问题讨论】: