ListView does not scroll

本文关键字:scroll not does ListView | 更新日期: 2023-09-27 18:28:23

我有一些XAML代码,我的问题是Listview高度不在Grid行的范围内,而是随着ListViewItem的添加量而增加。这将阻止列表滚动。

我该如何防止这种情况发生?

以下是一些重现的xaml代码:

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
    <Grid Margin="30, 20, 30, 20">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <StackPanel Grid.Row="0">
            <TextBlock Text="SomeText" FontSize="40"/>
        </StackPanel>
        <StackPanel Grid.Row="1">
            <TextBlock Text="Some More Text" FontSize="30"/>
        </StackPanel>
        <Grid x:Name="ContGrid"  Grid.Row="2">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="400"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <Viewbox HorizontalAlignment="Left" VerticalAlignment="Top" Grid.Column="0" Stretch="None" Width="AUto">
                <StackPanel x:Name="holderPanel" Margin="5" Grid.Column="0" Grid.Row="0" Orientation="Vertical">
                    <TextBlock Text="SomeCategories" FontSize="20"/>
                    <ListView CanDragItems="True" CanReorderItems="True" AllowDrop="True" Width="380">
                        <ListViewItem Background="Blue">Test</ListViewItem>
                        <ListViewItem Background="Red">Test</ListViewItem>
                        <ListViewItem Background="Green">Test</ListViewItem>
                        <ListViewItem Background="Purple">Test</ListViewItem>
                        <ListViewItem Background="Blue">Test</ListViewItem>
                        <ListViewItem Background="Red">Test</ListViewItem>
                        <ListViewItem Background="Blue">Test</ListViewItem>
                        <ListViewItem Background="Red">Test</ListViewItem>
                        <ListViewItem Background="Green">Test</ListViewItem>
                        <ListViewItem Background="Purple">Test</ListViewItem>
                        <ListViewItem Background="Blue">Test</ListViewItem>
                        <ListViewItem Background="Red">Test</ListViewItem>
                        <ListViewItem Background="Blue">Test</ListViewItem>
                        <ListViewItem Background="Red">Test</ListViewItem>
                        <ListViewItem Background="Green">Test</ListViewItem>
                        <ListViewItem Background="Purple">Test</ListViewItem>
                        <ListViewItem Background="Blue">Test</ListViewItem>
                        <ListViewItem Background="Red">Test</ListViewItem>
                        <ListViewItem Background="Blue">Test</ListViewItem>
                        <ListViewItem Background="Red">Test</ListViewItem>
                        <ListViewItem Background="Green">Test</ListViewItem>
                        <ListViewItem Background="Purple">Test</ListViewItem>
                        <ListViewItem Background="Blue">Test</ListViewItem>
                        <ListViewItem Background="Red">Test</ListViewItem>
                    </ListView>
                </StackPanel>
            </Viewbox>
        </Grid>
    </Grid>
</Grid>

ListView does not scroll

ListView的高度之所以随着ListViewItems的添加而增加,是因为ListView被放置在StackPanel中。StackPanel将允许在不启用滚动条的情况下扩展到屏幕的边界之外。

这是原始答案的链接