Как добавить ScrollBar в стеке

В моем приложении WPF у меня есть Stackpanel, в котором есть несколько элементов управления. Как добавить панель прокрутки в эту стеквую панель.

Ответ 2

У Stackpanel нет встроенного механизма прокрутки, но вы всегда можете обернуть StackPanel в ScrollViewer

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

Ответ 3

Он работает следующим образом:

<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);

Ответ 4

Для горизонтально ориентированной StackPanel явным образом создавая видимость видимости прокрутки для меня, чтобы получить горизонтальную полосу прокрутки.

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

Ответ 5

Если вы имеете в виду, вам нужно прокрутить несколько элементов в вашей панели стека, попробуйте поместить вокруг него сетку. По определению стековая панель имеет бесконечную длину.

Итак, попробуйте что-то вроде этого:

   <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