网格行中的ListBox具有自动高度。滚动条无效

时间:2012-05-25 08:53:47

标签: wpf scroll listbox grid

我有以下网格:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <Border Height="50" Background="Gainsboro" Grid.Row="0"/>
    <Border Background="AliceBlue" Grid.Row="1">
        <ListBox ScrollViewer.VerticalScrollBarVisibility="Auto" ItemsSource="asdasdfasdf3dfasdf"/>
    </Border>
    <Border Height="60" Background="Aquamarine" Grid.Row="3"/>
</Grid>

为什么ListBox的scrollviewer未启用?最后一个边框被推出窗口。如果我将Grid.Row 2 Height设置为* star - 它可以很好地工作。是否可以在自动高度网格行中使用带有scrollviewer的列表框?

1 个答案:

答案 0 :(得分:2)

Auto可让您的控件根据需要调整大小。因此,ListBox会自行调整大小以显示其所有内容,并且滚动条永远不会显示。

*使您可以控制可用的大小,并且不会超出此范围。

您需要做的是为MaxHeight定义ListBox属性,或在*中使用RowDefinition作为高度。