我有以下网格:
<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的列表框?
答案 0 :(得分:2)
Auto
可让您的控件根据需要调整大小。因此,ListBox
会自行调整大小以显示其所有内容,并且滚动条永远不会显示。
*
使您可以控制可用的大小,并且不会超出此范围。
您需要做的是为MaxHeight
定义ListBox
属性,或在*
中使用RowDefinition
作为高度。