2009-05-11 9 views
4

J'entends beaucoup de choses sur le fait que le panneau wrap est plus lent à charger des choses et donc nous avons besoin d'un panneau de virtualisation. Quelqu'un peut-il me donner un petit échantillon de panneau d'enveloppe où il peut être prouvé qu'il est plus lent à charger etc. qu'il a besoin d'un panneau de virtualisation s'il vous plaît.En quoi un panneau WPF Wrap est plus lent que nous avons besoin d'un panneau virtuel

J'ai défini un panneau de bouclage comme un contrôle de panneau pour une zone de liste, et ajouté 10000 objets de chaîne à elle, et ce n'était pas un problème. Je suis sûr que mon échantillon était stupide, peut-être que je dois écrire un objet métier et créer un plus grand modèle de données pour voir ce problème en action. Veuillez me montrer un échantillon qui prouve que le panneau de wrap sans virtualisation est plus lent.

Merci.

Répondre

3

Je pense que le problème de performance dépend principalement du nombre d'objets visuels dans votre arbre.

Le modèle ListBoxItem par défaut consiste en un nombre réduit d'éléments (une bordure et un bloc de texte je pense). Si vous avez un modèle qui crée une visualisation complexe de 100 éléments visuels par élément, vous obtenez une quantité assez importante d'éléments visuels en fonction du nombre d'éléments. Ceci est la raison pour laquelle le panneau normal est plus lent au chargement, car il doit créer tous les objets au démarrage alors que la version de virtualisation crée uniquement des visuels pour les éléments visibles et ne dispose plus de visuels affichés.

En outre cela a aussi des conséquences sur l'utilisation de la mémoire

0

J'ai récemment besoin de cette fonctionnalité en faisant une forme de symbole d'insertion. L'utilisation d'une zone de liste avec un panneau d'habillage normal en tant que panneau d'éléments - le temps de chargement prendrait jusqu'à 5 secondes.

Questions connexes