120

私の WPF アプリケーションには、内部にいくつかのコントロールを含む Stackpanel があります。このスタックパネルにスクロールバーを追加するにはどうすればよいですか?

4

5 に答える 5

186

に入れScrollViewerます。

于 2011-06-06T09:51:24.640 に答える
116

StackPanel にはスクロール メカニズムが組み込まれていませんが、いつでも StackPanel を ScrollViewer にラップできます。

<ScrollViewer VerticalScrollBarVisibility="Auto">
  <StackPanel ... />
</ScrollViewer>
于 2011-06-06T09:52:24.960 に答える
13

それはこのように動作します:

<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);
于 2012-07-29T00:33:01.747 に答える
0

水平方向の StackPanel の場合、両方のスクロールバーの可視性を明示的に配置すると、水平スクロールバーを取得できました。

    <ScrollViewer VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Auto" >
        <StackPanel Orientation="Horizontal" />
    </ScrollViewer>
于 2015-11-05T03:01:55.937 に答える
-3

つまり、スタックパネル内の複数のアイテムをスクロールしたい場合は、その周りにグリッドを配置してみてください。定義により、スタックパネルの長さは無限です。

だから、次のようなことを試してください:

   <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 を使用してこれを機能させることもできます

于 2011-06-06T09:54:32.497 に答える