IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

Fenêtre figée par une boucle FOR


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2010
    Messages : 58
    Par défaut Fenêtre figée par une boucle FOR
    voila jais une fenêtre avec dedans un ScrolViewer qui contiens un StackPanel,
    le StackPanel est remplie par une boucle FOR d'un certain nombre de User Controls en forme de Panel, le sombre varie selon le résultat d'une requête exécuté préalablement, pour chaque objet du résultat de la requête je crée un User Control et je l'ajoute au Children du StackPanel.

    le problème c'est que cette partie prend entre 4 et 10 secondes de traitement, et pendant ce temps la tout est figé jusqu’à la fin de l'ajout de tout les User Control

    es ce que c'est possible de faire la même chose et ajouter les User Control un à un sans figé l'interface ?

    Merci;

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Déjà, il ne faut pas penser à programmer comme ca. Il serait plus judicieux d'utiliser un ListBox ou un ItemsControl et binder ca sur ta collection d'objets en utilisant des templates pour chaque élément. C'est une des bases du WPF.

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2010
    Messages : 58
    Par défaut
    mmm...effectivement je n y avais pas pensé, je suis nouveau dans Silverlight et WPF (je viens de Delphi) et jais tendance à reproduire les anciens concepts
    je vais essayer ça et je vous confirme, je doit faire des trucs à coté de ça puisque j’utilise un ScrolViewer avec une méthode ScrollToPosition() redéfinis (AniScrollViewer) qui fait un scrolling animé fluide, je ne sait pas si je vais pouvoir reproduire ça sur un ListBox ou un ItemsControl, ou bien je vais garder le ScrolViewer et mettre dedans quelque chose que je doit bider

  4. #4
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2010
    Messages : 58
    Par défaut
    C'est fait merci beaucoup,
    jais utilisé au début un ItemSource Bindé à une liste qui contient tout mes UserControl y avais aucune différence de performance , puis jais essayer avec une ListeBox et la GRAAAAAAAANDE différence !
    ça marche très bien, ce qui s’exécutait en 6 secondes avant s’exécute désormais en moins d'une seconde ! (il s'agit d'un test sur le cas extreme tout les autres sont plus petits)
    avec le fait que les éléments sont sélectionnables etc...
    reste plus qu'a réadapter mon scrolling fluide pour la ListBox
    Merci

  5. #5
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2010
    Messages : 58
    Par défaut
    avec la ListBox le scrolling se fait par élément, c quantifié, es ce qu'il existe un moyen pour faire un scrolling classique par pixels ? ou bien animer le défilement d'une manière fluide pour que ça saute pas mais au lieu de cela glisse jusqu’à la bonne position ?

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Citation Envoyé par s.toubal
    avec la ListBox le scrolling se fait par élément, c quantifié, es ce qu'il existe un moyen pour faire un scrolling classique par pixels ? ou bien animer le défilement d'une manière fluide pour que ça saute pas mais au lieu de cela glisse jusqu’à la bonne position ?
    En passant la propriété ScrollViewer.CanContentScroll à False, tu dois pouvoir avoir cet effet, par contre dans ce cas de figure, tu perds la virtualisation (ce qui peut être embettant si ta liste contient beaucoup de données).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] fermer un nombre fixé de fenêtres graphiques générées par une boucle de 'plot'
    Par maraval dans le forum Interfaces Graphiques
    Réponses: 6
    Dernier message: 24/04/2012, 23h29
  2. Réponses: 10
    Dernier message: 02/06/2010, 12h56
  3. Insérer <form> dans une boucle for et traiter par POST
    Par IRONicMAN dans le forum Langage
    Réponses: 10
    Dernier message: 26/03/2010, 14h09
  4. création des DDLs par une boucle for
    Par sophiesophie dans le forum C#
    Réponses: 27
    Dernier message: 29/05/2008, 11h29
  5. [Timer] timer bloqué par une boucle for?
    Par Jidefix dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 18/09/2006, 17h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo