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

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

87 голосов | спросил Shamim Hafiz 6 J0000006Europe/Moscow 2011, 13:48:04

5 ответов


0

Поместите его в ScrollViewer

ответил Joey 6 J0000006Europe/Moscow 2011, 13:51:24
0

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

<ScrollViewer VerticalScrollBarVisibility="Auto">
  <StackPanel ... />
</ScrollViewer>
ответил biju 6 J0000006Europe/Moscow 2011, 13:52:24
0

Это работает так:

<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);
ответил arnisz 29 J000000Sunday12 2012, 04:33:01
0

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

    <ScrollViewer VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Auto" >
        <StackPanel Orientation="Horizontal" />
    </ScrollViewer>
ответил VijayKP 5 42015vEurope/Moscow11bEurope/MoscowThu, 05 Nov 2015 06:01:55 +0300 2015, 06:01:55
0

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

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

   <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

ответил Freakishly 6 J0000006Europe/Moscow 2011, 13:54:32

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132