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.
Mettez-le dans un ScrollViewer
.
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>
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);
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>