web-dev-qa-db-fra.com

Comment ajouter un ScrollBar à un Stackpanel

Dans mon application WPF, j'ai un Stackpanel contenant plusieurs contrôles à l'intérieur. Comment puis-je ajouter une barre de défilement à cette pile.

95
Shamim Hafiz

Mettez-le dans un ScrollViewer .

144
Joey

Stackpanel n'a pas de mécanisme de défilement intégré, mais vous pouvez toujours envelopper le StackPanel dans un ScrollViewer

<ScrollViewer VerticalScrollBarVisibility="Auto">
  <StackPanel ... />
</ScrollViewer>
88
biju

Cela fonctionne comme ceci:

<ScrollViewer VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Disabled" Width="340" HorizontalAlignment="Left" Margin="12,0,0,0">
        <StackPanel Name="stackPanel1" Width="311">

        </StackPanel>
</ScrollViewer>

TextBox tb = new TextBox();
tb.TextChanged += new TextChangedEventHandler(TextBox_TextChanged);
stackPanel1.Children.Add(tb);
9
arnisz

Pour StackPanel orienté horizontalement, mettre explicitement les deux visibilités de la barre de défilement m'a permis d'obtenir la barre de défilement horizontale.

    <ScrollViewer VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Auto" >
        <StackPanel Orientation="Horizontal" />
    </ScrollViewer>
2
VijayKP