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 :

WPF - Lister tous les controles d'une Window


Sujet :

Windows Presentation Foundation

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Points : 6
    Points
    6
    Par défaut WPF - Lister tous les controles d'une Window
    Bonjour,

    Je cherche une facon générique de parcourir tous les contrôles d'un control appartenant à la classe System.Windows.Controls et plus particulièrement d'un objet de type Window.
    Il y a bien la méthode Children mais elle ne s'applique que sur un type défini (ex : Canvas) mais pas sur un type générique.

    Je charche l'équivalent de foreach (Control ctrl in control.Controls)
    où control est de type System.Windows.Form.Control

    Merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Il faut utiliser la classe VisualTreeHelper.

    Tu peux créer une méthode d'extension pour que ce soit plus pratique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    namespace MonNamespace
    {
        public static class VisualTreeExtensions
        {
            public static IEnumerable<DependencyObject> GetVisualChildren(this DependencyObject parent)
            {
                int count = VisualTreeHelper.GetChildrenCount(parent);
                for (int i = 0; i < count; i++)
                {
                    DependencyObject child = VisualTreeHelper.GetChild(fenetre, i);
                    yield return child;
                }
            }
        }
     
    }
    Pour l'utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    using MonNamespace;
    ...
     
     
    foreach(DependencyObject child in monPanel.GetVisualChildren())
    {
     
    }
    Par contre, ça ne te donnera que les enfants au premier niveau, pas les enfants des enfants (comme control.Controls en WinForms d'ailleurs)

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Merci, c'est ce que je voulais. Je vais pouvoir l'utiliser.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    n'oublie pas le bouton si c'est ok

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

Discussions similaires

  1. Lister tous les controles d'une feuille
    Par Oussbaba au rhum dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/11/2007, 11h28
  2. Lister tous les jours d'une année
    Par Delphi-ne dans le forum Requêtes
    Réponses: 3
    Dernier message: 18/02/2007, 18h10
  3. Accés direct à TOUS les controls d'une form
    Par olsimare dans le forum Windows Forms
    Réponses: 5
    Dernier message: 07/02/2007, 00h39
  4. [code] Comment lister tous les éléments d'une form
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/10/2006, 11h23
  5. Comment lister tous les composants d'une fiche ?
    Par tipiweb dans le forum Langage
    Réponses: 2
    Dernier message: 18/01/2006, 21h53

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