在WPF应用程序中,我有一个Stackpanel,其中包含多个控件。如何将滚动条添加到此堆栈面板。
在WPF应用程序中,我有一个Stackpanel,其中包含多个控件。如何将滚动条添加到此堆栈面板。
Answers:
把它放进去ScrollViewer。
Stackpanel没有内置的滚动机制,但是您始终可以将StackPanel包装在ScrollViewer中
<ScrollViewer VerticalScrollBarVisibility="Auto">
  <StackPanel ... />
</ScrollViewer>
StackPanel确实实现IScrollInfo并提供了许多与滚动相关的方法。您确定它没有任何“内置”滚动机制吗?
                    它是这样的:
<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);
如果您要说的是,要在堆栈面板中滚动浏览多个项目,请尝试在其周围放置一个网格。根据定义,堆栈面板的长度是无限的。
所以尝试这样的事情:
   <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使其工作