如何让我的ScrollViewer滚动视图区域?

Edw*_*uay 6 wpf grid xaml scrollviewer

我有一个一个内部的ScrollViewer一个内部边境一个内部的StackPanel一个内部窗口.

ScrollViewer 在右侧放置一个滚动条,但它不可滚动.

如何让ScrollViewer使其内容可滚动?

替代文字http://www.deviantsart.com/upload/1bl34e1.png

<Window x:Class="TestScroll234343.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="150" Width="300">
    <StackPanel>
    <!--<StackPanel Height="150"> doesn't work either-->
        <Border>
            <ScrollViewer>            
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>

                    <TextBlock Grid.Row="0" Grid.Column="0" Text="Row0"/>
                    <TextBlock Grid.Row="1" Grid.Column="0" Text="Row1"/>
                    <TextBlock Grid.Row="2" Grid.Column="0" Text="Row2"/>
                    <TextBlock Grid.Row="3" Grid.Column="0" Text="Row3"/>
                    <TextBlock Grid.Row="4" Grid.Column="0" Text="Row4"/>
                    <TextBlock Grid.Row="5" Grid.Column="0" Text="Row5"/>
                    <TextBlock Grid.Row="6" Grid.Column="0" Text="Row6"/>
                    <TextBlock Grid.Row="7" Grid.Column="0" Text="Row7"/>
                    <TextBlock Grid.Row="8" Grid.Column="0" Text="Row8"/>
                    <TextBlock Grid.Row="9" Grid.Column="0" Text="Row9"/>
                </Grid>
            </ScrollViewer>
        </Border>

    </StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)

Edu*_*eni 7

你应该设置的高度ScrollViewer.

如果你不这样做,Border请询问ScrollViewer它想要的高度,并ScrollViewer询问Border它的高度.

其他选择:

  • 更改StackPanel为a DockPanel(它不会增长超过Window)
  • 设置的高度StackPanel并绑定到它的高度ScrollViewer

码:

 <StackPanel Height="140">
    <Border>
        <ScrollViewer Height="{Binding RelativeSource={RelativeSource FindAncestor, 
                    AncestorType={x:Type StackPanel}}, Path=Height}">
Run Code Online (Sandbox Code Playgroud)