3D屏幕保护程序干扰WPF应用程序(Windows XP)

时间:2010-04-19 01:33:09

标签: c# wpf directx

我有一个相当大的应用程序,它使用WPF作为其用户界面。我最近发现3D屏保的一个不寻常的缺陷。 3D屏幕保护程序3D FlowerBox,3D飞行物体,3D管道,3D文本导致我的WPF窗口中的一个在屏幕保护程序激活时消失。其他屏保很好。

我的应用程序仅在Windows XP上遇到此问题。

我对DirectX有一些经验。当3D屏幕保护程序激活时,d3d设备上下文将切换到独占模式。我认为当设备切换回协作模式时,WPF无法恢复设备上下文(因此它只会影响Windows XP)

有没有人见过这样的情景?这个问题有补救措施吗?

Windows XP SP3,DirectX 9.0c,.NET 3.5

1 个答案:

答案 0 :(得分:0)

不是那么精确,但我确实看到了WPF和Windows XP的奇怪问题,尤其如此。很容易说的是你应该尽快转移到Windows 7,但那时我只是一个混蛋。

首先,请检查您的视频设备驱动程序。当使用旧显卡的设备驱动程序时,我们在XP上遇到了很多WPF问题。将其更新到最新版本。这可以照顾它。

如果这不起作用,如果可以,请尝试将视频卡换成其他品牌。这也可能有用(虽然非常不受欢迎)。

第三 - 您的窗户是半透明还是非矩形?如果你将你的WPF应用程序切换为常规的,矩形的,无聊的,丑陋的Windows XP窗口,我们发现当我们停止使用我们的主窗口时,很多这些怪癖都消失了。我的猜测是它与XP没有桌面窗口管理器这一事实有关。但是我再也不知道了。

我知道这一切都非常令人不满意。我们在XP上遇到过这样的事情。我正在祈祷我们的IT部门能够将我们带到今年的7个......