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 :

Expander + GridSplitter


Sujet :

Windows Presentation Foundation

  1. #1
    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 749
    Points
    39 749
    Par défaut Expander + GridSplitter
    Salut,

    Je suis en train de galérer sur un problème de layout...

    J'ai dans mon application une vue "maitre/détails" : en gros, quand je sélectionne un réalisateur dans une liste, une autre liste montre les films de ce réalisateur. Jusqu'ici, rien de très compliqué...

    Pour fixer les idées, ça ressemble à ça

    Maintenant, je voudrais :
    1. Pouvoir "réduire" la liste des films
    2. Pouvoir redimensionner la liste des films

    En gros, je voudrais le même comportement que la barre latérale de l'explorateur Vista (avec en haut "Liens favoris", et en bas "Dossiers", qu'on peut redimensionner et réduire)

    J'utilise donc le code suivant (simplifié pour des raisons évidentes de clarté...) :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition />
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>
            <ListView Name="lstDirectors" Grid.Row="0" ItemsSource="{Binding ...}"/>
            <GridSplitter Grid.Row="1" Height="5" HorizontalAlignment="Stretch" VerticalAlignment="Center"/>
            <Expander Name="expDirectorMovies" Grid.Row="2" IsExpanded="True">
                <ListView Name="lstDirectorMovies" ItemsSource="{Binding ...}"/>
            </Expander>
        </Grid>

    - Quand je replie l'Expander, la ligne qui le contient est bien redimensionnée pour ne laisser que l'en-tête de l'Expander.
    - Je peux également redimensionner la ligne de l'Expander avec le GridSplitter

    Le problème : une fois que j'ai manipulé le GridSplitter, la hauteur de la ligne est modifiée, donc elle n'est plus en Auto, et donc la ligne ne se redimensionne plus quand je replie l'Expander...
    J'ai aussi essayé de passer par un binding sur Expanded avec un Converter, mais le GridSplitter dégage le binding pour changer la hauteur.

    J'ai trouvé un post qui aborde le problème sur le forum MSDN, mais il ne semble pas y avoir de solution "propre" à part gérer la hauteur par le code, ce que je préfèrerais éviter

    Est-ce que vous auriez une idée pour régler ce problème ? Ou alors une approche différente pour obtenir le comportement voulu ?

  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 749
    Points
    39 749
    Par défaut
    Mon problème ne déchaine pas les passions apparemment

    Je pense que je vais me résoudre à coder mon propre contrôle "ResizableExpander" pour gérer ça, en utilisant un Thumb...

    Si vous avez une meilleure idée (ou si vous connaissez un contrôle existant qui pourrait faire l'affaire), je suis toujours preneur

Discussions similaires

  1. [JTree] expand
    Par mister3957 dans le forum Composants
    Réponses: 5
    Dernier message: 01/08/2005, 15h29
  2. [C# Treeview] sauvegarde treenode problème Expand()
    Par joujoukinder dans le forum Windows Forms
    Réponses: 5
    Dernier message: 27/07/2005, 13h10
  3. [VB.NET] [TreeView] expand node d'un treeview
    Par graphicsxp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 07/04/2005, 16h21
  4. Réponses: 1
    Dernier message: 12/07/2004, 23h23
  5. [Turbo C++] Fonciton containing for are not expanded inline
    Par BuG dans le forum Autres éditeurs
    Réponses: 6
    Dernier message: 17/02/2003, 06h48

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