c# - Cómo agregar una ScrollBar a un Stackpanel
wpf xaml (5)
En mi aplicación WPF, tengo un Stackpanel que contiene varios controles dentro de ellos. ¿Cómo puedo agregar una barra de desplazamiento a este panel de distribución?
Funciona así:
<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);
Para StackPanel orientado horizontalmente, poniendo explícitamente las dos visibilidades de la barra de desplazamiento trabajadas para mí para obtener la barra de desplazamiento horizontal.
<ScrollViewer VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Auto" >
<StackPanel Orientation="Horizontal" />
</ScrollViewer>
Si quiere decir que desea desplazarse por varios elementos en su panel de distribución, intente colocar una cuadrícula alrededor de él. Por definición, un stackpanel tiene una longitud infinita.
Intente algo como esto:
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<StackPanel Width="311">
<TextBlock Text="{Binding A}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" FontStretch="Condensed" FontSize="28" />
<TextBlock Text="{Binding B}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
</StackPanel>
</Grid>
Incluso podría hacer que esto funcione con ScrollViewer
Stackpanel no tiene un mecanismo de desplazamiento integrado, pero siempre puede ajustar el StackPanel en un ScrollViewer
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel ... />
</ScrollViewer>
Ponlo en un ScrollViewer
.