2009-02-17 8 views
6

Je suis relativement nouveau dans le monde de WPF et une chose que j'ai immédiatement remarquée est la façon dont le contenu de la fenêtre est dessiné lorsque vous redimensionnez une fenêtre. Par exemple, si vous avez des barres de défilement sur les bords de la fenêtre, ces barres de défilement seront partiellement cachées tout en rétrécissant et auront un espace entre elles et la bordure de la fenêtre lors de l'agrandissement.Comment rendre le redimensionnement des fenêtres WPF moins «laggy»?

Cela se produit même avec un projet WPF vide créé dans Visual Studio. Ce qui est encore pire, c'est que cela arrive également avec l'arrière-plan et que vous pouvez voir des choses derrière la fenêtre (d'autres fenêtres, papier peint de bureau, etc.) couler pendant l'agrandissement. Au début, je pensais que c'est une limitation moche de WPF voyant que les applications natives ou WinForms redimensionner très bien (si écrit correctement). Mais quand je regarde Expression Blend, l'arrière-plan de la fenêtre reste opaque (bien que le contenu de la fenêtre soit encore en retard). Que font-ils pour éviter les problèmes décrits et y a-t-il des moyens d'améliorer le redimensionnement vers des interfaces graphiques natives/WinForm plus approximatives?

Répondre

1

Exécutez-vous Vista sans SP1? D'après ce que j'ai lu, cela était un problème commun qui est censé avoir été fixé ..

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/3960d6a6-e873-455c-9ddc-1e2dd32e090b/

+0

Oui, je le fais. Et comme je l'ai dit, Expression Blend ne semble pas avoir ce problème. Avez-vous des indications supplémentaires sur cette «question commune» dont vous avez parlé? – gix

+0

Désolé confus - J'avais lu que cela avait été corrigé entre Vista et Vista SP1. – markt

+0

Que diriez-vous de .Net 3.5 SP1? Il y a eu beaucoup de travail ou de travail avec les performances de WPF dans 3.5 Sp1. – Russ

0

Je ne vois pas ce comportement, moi-même. Je développe sur vista x64 sp1 et/ou un pc virtuel exécutant xp x32 sp3. Wpf utilise directx, pourrait-il s'agir de votre carte vidéo/machine? Essayez d'exécuter votre application sur une machine diff et voir si vous avez les mêmes résultats.

+0

Je cours Vista64 SP1 moi-même, Aero activé. En utilisant le thème vista-basic (aero désactivé), je ne comprends pas (ou c'est à peine perceptible). Dans Server 2008 R2 dans VBox et dans Server 2008 sur mon ordinateur portable avec le thème de base, je ne le vois pas du tout. Peut-être parce que ma machine est beaucoup plus rapide que celles-ci. – gix

0

J'ai le même problème avec l'interface en retard lors du redimensionnement. Je soupçonne que la raison du retard est qu'il redimensionne les tampons de trame sous-jacents en direct X qui n'est jamais particulièrement rapide. Je ne suis pas sûr de ce que vous pouvez faire à ce sujet cependant.

0

J'ai aussi cherché des informations sur ce problème. Je pensais juste que c'était une "fonctionnalité" de Windows que certains programmeurs intrépides de Microsoft pensaient être cool. J'espérais pouvoir l'éteindre de telle sorte que la redimensionnement de la fenêtre suivrait ma souris, au lieu de ralentir et de dépasser. Grr.

Questions connexes