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 :

ScrollBar, ListBox et GroupBox


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Lelio1407
    Inscrit en
    Juillet 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 126
    Par défaut ScrollBar, ListBox et GroupBox
    Bonjour,
    J'ai un UserControl qui contient, entre autres, une ListBox avec scrollBar. Ce UserControl est contenu dans une GroupBox de ma MainWindow ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
       <GroupBox Grid.Column="0" Grid.Row="1" Margin="3,3,0,0" >
                        <GroupBox.Header>
                            <Label FontSize="11">Project Infos</Label>
                        </GroupBox.Header>
                        <StackPanel>
                            <local:GC_UI_FontsList x:Name="FontsList_UserControl" />
                            <Label Height="20"/>
                            <local:GC_UI_PicturesList x:Name="PicturesList_UserControl"/>
                            </StackPanel>
                    </GroupBox>
    et le code du UserControl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <StackPanel>
            <Border BorderThickness="1,1,1,0" CornerRadius="5,5,0,0">
                <Grid>
                    <Label Name="Label_PicturesList"  Content="Pictures" />
                </Grid>
            </Border>
            <ListBox Name="PicturesList" ItemsSource="{Binding}" SelectionChanged="PicturesList_SelectionChanged" IsSynchronizedWithCurrentItem="True" ScrollViewer.VerticalScrollBarVisibility="Visible" />
        </StackPanel>

    Au début de l'application, la List Box est vide. Puis, je lui rajoute des éléments au fur et à mesure.
    Mon problème est le suivant : je n'arrive pas à faire en sorte que la ListBox "reste" dans la GroupBox quand le nombre d'éléments qu'elle contient fait que sa hauteur devient plus "grande" que celle de la GroupBox. Le bas de la ListBox disparait et je ne peux plus accéder à ses éléments.
    Comment faire pour qu'elle reste dans les limites de la GroupBox et que ce soit la ScrollBar qui se mette en route lorque le nombre d'élément augmente.
    Merci d'avance.

  2. #2
    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
    Salut,

    Il ne faut pas que utiliser le StackPanel dans ce cas. Regarde plutôt du côté du DockPanel

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
       <GroupBox Grid.Column="0" Grid.Row="1" Margin="3,3,0,0" >
                        <GroupBox.Header>
                            <Label FontSize="11">Project Infos</Label>
                        </GroupBox.Header>
                        <DockPanel>
                            <local:GC_UI_FontsList x:Name="FontsList_UserControl" DockPanel.Dock="Top" />
                            <Label Height="20" DockPanel.Dock="Top" />
                            <local:GC_UI_PicturesList x:Name="PicturesList_UserControl"/>
                         </DockPanel>
                    </GroupBox>

    Et pareil dans ton UserControl :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <DockPanel>
            <Border BorderThickness="1,1,1,0" CornerRadius="5,5,0,0" DockPanel.Dock="Top" >
                <Grid>
                    <Label Name="Label_PicturesList"  Content="Pictures" />
                </Grid>
            </Border>
            <ListBox Name="PicturesList" ItemsSource="{Binding}" SelectionChanged="PicturesList_SelectionChanged" IsSynchronizedWithCurrentItem="True" ScrollViewer.VerticalScrollBarVisibility="Visible" />
    </DockPanel>

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 62
    Par défaut
    Scrollviewer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
       <GroupBox Grid.Column="0" Grid.Row="1" Margin="3,3,0,0" >
                        <GroupBox.Header>
                            <Label FontSize="11">Project Infos</Label>
                        </GroupBox.Header>
                        <Scrollviewer>
                        <StackPanel>
                            <local:GC_UI_FontsList x:Name="FontsList_UserControl" />
                            <Label Height="20"/>
                            <local:GC_UI_PicturesList x:Name="PicturesList_UserControl"/>
                            </StackPanel>
                        </Scrollviewer>
                    </GroupBox>

  4. #4
    Membre confirmé Avatar de Lelio1407
    Inscrit en
    Juillet 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 126
    Par défaut
    Merci à tous les deux pour vos réponses. Malheureuresement, les solutions ne fonctionnent pas comme attendues.
    Mes deux ListBox sont l'une au dessus de l'autre (d'où le stackPanel) et je ne vois pas comment utiliser le DockPanel pour obtenir le même résultat.
    Concernant le scrollViewer, je voudrais que ce soit celui de la ListBox qui s'affiche dès que sa taille dépasse la taille de la ListBox, la GroupBox ne devrait pas en avoir (sauf si je n'ai pas d'autres choix bien sur).
    Merci.

  5. #5
    Membre confirmé Avatar de Lelio1407
    Inscrit en
    Juillet 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 126
    Par défaut
    Bon, j'ai dit une grosse bêtise!!! Je n'avais pas vu le DockPanel.Dock="Top".
    Cela fonctionne parfaitement. Merci, merci!!!

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

Discussions similaires

  1. Perl Scrollbar + listbox
    Par El Criminal dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 27/10/2010, 21h13
  2. Suppression Scrollbar ListBox
    Par mdordenart dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 26/06/2009, 10h55
  3. définir manuellement position scrollbar listbox
    Par xx_FiFty_xx dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/06/2008, 12h42
  4. [vba E] Scrollbar listbox
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 26/07/2006, 22h33
  5. Pb de ScrollBar avec un GroupBox
    Par Olivekiki dans le forum C++Builder
    Réponses: 3
    Dernier message: 03/05/2005, 18h42

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