J'ai une assez grande application qui utilise WPF pour son interface utilisateur. J'ai récemment trouvé un défaut inhabituel concernant les économiseurs d'écran 3D. Les économiseurs d'écran 3D 3D FlowerBox, 3D Flying Objects, 3D Pipes, 3D Text font disparaître 1 de mes fenêtres WPF lorsque l'économiseur d'écran s'active. D'autres économiseurs d'écran sont bien.Screensaver 3D interférant avec l'application WPF (Windows XP)
Mon application ne rencontre ce problème que sous Windows XP.
J'ai de l'expérience avec DirectX. Lorsqu'un économiseur d'écran 3D est activé, le contexte du périphérique d3d passe en mode exclusif. Je suppose que WPF a du mal à restaurer le contexte de l'appareil lorsque l'appareil revient en mode coopératif (d'où son impact sur Windows XP uniquement)
Quelqu'un at-il déjà vu un tel scénario? Y a-t-il un remède au problème?
Windows XP SP3, DirectX 9.0c, .NET 3.5
Merci pour la réponse. La fenêtre qui disparaît est transparente et non rectangulaire. Les fenêtres qui ne disparaissent pas sont rectangulaires et solides. J'essaie maintenant de puiser dans le messageloop et de trouver les messages qui indiquent qu'un économiseur d'écran a été activé. Je vais essayer InvalidateVisual lorsque l'économiseur d'écran est fermé. Mon application fonctionne principalement sur Windows 2008 Server ou Windows 7, mais nous avons quelques vieux clients qui aiment Windows XP. –
Ouais, vous voudrez peut-être envisager de dégrader l'application pour afficher simplement cette fenêtre dans une fenêtre ennuyeuse laide pour vos clients XP. Vous pourriez leur dire que cela "fonctionne" pour eux, mais s'ils veulent l'expérience complète, mettre à niveau vers Windows 7. Douloureux. –
J'ai résolu le problème en supprimant la transparence pour les utilisateurs de Windows XP. Je pense qu'il est temps de les mettre à niveau de toute façon. –