2009-08-15 8 views
1

Plus précisément, j'ai essayé d'avoir une grille de 48 lignes, 40 unités de haut, contenue dans une visionneuse de défilement ... chaque ligne devait contenir une barre de progression, mais pour une raison quelconque, cela a vraiment ralenti mon interface utilisateur, Je l'ai mis au rebut. Mes questions sont les suivantes:Quelles sont les implémentations rapides et simples pour une barre de progression segmentée dans WPF?

Pourquoi la barre de progression provoquerait un tel ralentissement extrême, en particulier pendant l'animation du panneau hôte?

Au lieu d'une barre de progression, je pourrais utiliser une grille multi-colonnes et la remplir avec des retours qui changent de taille et peuvent être individuellement colorés, serait-ce une solution "plus rapide"?

+0

Qu'est-ce qu'une "barre de progression segmentée" - avez-vous besoin de superposer visuellement des marqueurs ou d'autres détails? Je parie que les 40 contrôles sont plutôt intenses - beaucoup d'événements, tous probablement pleins de storyboards qui s'animent (si vous utilisez la propriété IsIndeterminate), etc. –

+0

En fait, je ne suis pas: -/juste en utilisant une barre de progression ... comme dans Firoso

+0

Je ne suis pas sûr de ce que vous voulez dire mais le chapitre 3 de WPF Control Development Unleashed contient un exemple pour un ProgressBar "mis en scène". (Éditions SAMS, Pavan Podila et Kevin Hoffman) – TimothyP

Répondre

0

Les animations (peuvent) coûtent du temps CPU. Donc moins d'animation/calcul/rendu pour la barre de progression coûtera moins de temps CPU.

La norme WPF progress bar is notorious for its animation.

Une barre de progression avec un design plus simple est probablement meilleure que celle par défaut.

Votre solution avec une grille de 40 lignes et 40 barres de progression n'est pas bonne: trop de calculs.

Vous pouvez essayer de remplacer le modèle de la barre de progression, mais 40 barres de progression est encore beaucoup. Peut-être qu'une autre façon de montrer le progrès (les chiffres?) Pourrait être meilleure pour la performance.

Questions connexes