Xaml 使用“栅格高度自动”时,listview中没有滚动视图
我想显示代码中的控件。但当listview达到屏幕高度时,滚动视图不会显示。如何纠正?请建议Xaml 使用“栅格高度自动”时,listview中没有滚动视图,xaml,listview,grid,uwp-xaml,Xaml,Listview,Grid,Uwp Xaml,我想显示代码中的控件。但当listview达到屏幕高度时,滚动视图不会显示。如何纠正?请建议 <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="auto" /> <R
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ListView x:Name="ItemListView" Grid.Row="0" ScrollViewer.VerticalScrollBarVisibility="Auto" Width="Auto" HorizontalAlignment="Stretch">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel HorizontalAlignment="Center" Grid.RowSpan="2" VerticalAlignment="Center" >
<TextBlock Text="{Binding SerialNum}" TextAlignment="Left" FontSize="20" Width="50"/>
</StackPanel>
<StackPanel >
<TextBlock Text="{Binding Name}" FontSize="20" TextAlignment="Center"/>
</StackPanel>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<Border Background="Green" x:Name="Bg" Grid.Row="1" Tapped="Bg_TappedAsync" Visibility="Collapsed">
<TextBlock x:Uid="txt_string Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</Grid>
</Grid>
当ListView
的内容超出视口边界时,将生效。但在代码段中,第一行的高度设置为Auto
,这意味着对象的大小应与布局中的可用大小相同,以便第一行的大小适合其内容。而列表视图
就在这一行中,在这种情况下,列表视图
将始终有足够的空间来显示滚动查看器
不需要显示的记录。更多详情请参考
有几种方法可以解决这个问题,例如
- 为
列表视图设置固定大小
- 为
网格的第一行设置固定大小或星形大小,如下所示
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ListView
x:Name="ItemListView"
Grid.Row="0"
Width="Auto"
HorizontalAlignment="Stretch"
ScrollViewer.VerticalScrollBarVisibility="Auto">
<ListView.ItemTemplate>
...
</ListView.ItemTemplate>
</ListView>
<Border
x:Name="Bg"
Grid.Row="1"
Background="Green"
Tapped="zolioBg_TappedAsync"
Visibility="Collapsed">
<TextBlock
x:Uid="txt_string"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Foreground="White" />
</Border>
</Grid>
我试过了。滚动可以工作,但有一个问题。当listview显示的项目数非常少时(仅两行),文本框高度需要填充屏幕的剩余位置(listview下方)。怎样才能做到呢?
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ListView
x:Name="ItemListView"
Grid.Row="0"
Width="Auto"
MaxHeight="800"
HorizontalAlignment="Stretch"
ScrollViewer.VerticalScrollBarVisibility="Auto">