如何添加一个ScrollBar到一个Stackpanel
在我的WPF应用程序中,我有一个包含多个控件的Stackpanel。 我如何添加一个滚动条到这个堆栈面板。
把它放进一个ScrollViewer
。
Stackpanel没有内置的滚动机制,但是你总是可以将StackPanel包装在一个ScrollViewer中
<ScrollViewer VerticalScrollBarVisibility="Auto"> <StackPanel ... /> </ScrollViewer>
它是这样工作的:
<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);
对于水平方向的StackPanel,显式地把这两个滚动条的可见性为我工作得到水平滚动条。
<ScrollViewer VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Auto" > <StackPanel Orientation="Horizontal" /> </ScrollViewer>
如果你的意思是,你想在你的堆栈面板中的多个项目滚动,尝试围绕它的网格。 根据定义,堆栈面板具有无限长度。
所以试试这样的事情:
<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>
你甚至可以用ScrollViewer做这个工作