我有一个通用Windows平台应用程序。 我有一个ScrollViewer,顶部有一个按钮,ListBox和ListBox下面的一个按钮(我知道在ScrollViewer中有一个ListBox不是一个好习惯,但这不是我的代码,我可以&#t; t修改实现)。 ScrollViewer的VerticalScrollMode和VerticalScrollBarVisibility都设置为false,因此无法垂直滚动(这也是一项要求)。
当ListBox包含许多项时,列表的高度将大于设备高度。因此,ListBox的一部分和列表下方的按钮不可用(因为垂直滚动被禁用)。
<ScrollViewer>
<RelativeLayout>
...
<Button name="Button1">
...
</Button>
<ListBox MinHeight="120">
</ListBox>
<Button name="Button2">
...
</Button>
</RelativeLayout>
</ScrollViewer>
有没有办法将ScrollViewer的高度固定为设备屏幕高度?并修复ListBox的高度,以便ListBox的高度只增加,以便ListBox适合Button1和Button2之间的空间?
答案 0 :(得分:1)
您的问题不是滚动查看器的高度。列表框可以扩展以容纳它的内容(应该如此)。通过限制列表框的高度,您可以处理它。
您可以使用包含3行的网格。像这样的东西
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Button x:Name="ButtonTop" Grid.Row=0/>
<ListView x:Name="DontPutListViewInScrollViewer" Grid.Row=1/>
<Button x:Name="ButtonBottom" Grid.Row=2/>
</Grid>
注意中间行中定义的高度。这意味着列表视图将占用顶部和底部行可用的所有空间。
然后将此网格放入ScrollViewer。