没有滚动的 UWP ListView

UWP ListView with no scrolling

出于某种原因,滚动在这个 ListView 上根本不起作用,我真的不知道为什么。项目显示正确,只是列表不可滚动。使用网格是不可行的(据我所知,无论如何),因为设置为显示的项目是从网络资源中提取的(不知道会有多少,我也不太愿意使用 hacky 方法来获取一个可滚动的列表)。

<Page
    x:Class="Hello_World.News_Feed"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Hello_World"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
    mc:Ignorable="d">

    <ListView x:Name="NewsFeedList" x:FieldModifier="public"
                Padding="15,15,15,15" 
                FontFamily="Segoe UI Variable Display"
                SelectionMode="None" 
                VerticalAlignment="Top"
                Margin="10,0,0,0">
        <ListView.ItemContainerStyle>
            <Style TargetType="ListViewItem">
                <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                <Setter Property="Margin" Value="0, 10, 0, 10"/>
            </Style>
        </ListView.ItemContainerStyle>
        <ListView.ItemTemplate>
            <DataTemplate>
                <Frame
                        BorderThickness="1"
                        Padding="10,10,10,10"
                        CornerRadius="5"
                        Height="Auto">

                    <Frame.BorderBrush>
                        <SolidColorBrush Color="Gray" Opacity="0.2" />
                    </Frame.BorderBrush>
                    <Frame.Background>
                        <SolidColorBrush Color="Gray" Opacity="0.05" />
                    </Frame.Background>

                    <Grid>
                        <Grid Padding="0,5,0,0">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="60"/>
                                <ColumnDefinition Width="Auto"/>
                            </Grid.ColumnDefinitions>
                            <Border Grid.Column="0" Margin="3,3,0,0" CornerRadius="100" Height="50" Width="50" VerticalAlignment="Top">
                                <Border.Background>
                                    <ImageBrush Stretch="Fill" ImageSource="{Binding AuthorPicture}"/>
                                </Border.Background>
                            </Border>
                            <TextBlock x:Name="Author" Margin="15,5,0,0" Height="Auto" Grid.Column="1" FontSize="17" FontFamily="Segoe UI Variable Text" FontWeight="Semibold" Text="{Binding Author}" TextWrapping="WrapWholeWords">
                                <TextBlock.Foreground>
                                    <SolidColorBrush>#353535</SolidColorBrush>
                                </TextBlock.Foreground>
                            </TextBlock>
                            <TextBlock x:Name="Time" Margin="15,28,0,0" Height="Auto" Grid.Column="1" FontSize="15" FontFamily="Segoe UI Variable Text" FontWeight="Normal" Text="{Binding Time}" TextWrapping="WrapWholeWords">
                                <TextBlock.Foreground>
                                    <SolidColorBrush>#656565</SolidColorBrush>
                                </TextBlock.Foreground>
                            </TextBlock>
                        </Grid>
                        <Grid Padding="10,5,10,10">
                            <TextBlock x:Name="Heading" Margin="0,70,0,0" Height="Auto" Grid.Column="1" FontSize="18" FontFamily="Segoe UI Variable Text" FontWeight="Semibold" Text="{Binding Title}" TextWrapping="WrapWholeWords"/>
                            <TextBlock x:Name="Body" Margin="0,100,0,0" Height="Auto" Grid.Column="1" FontFamily="Segoe UI Variable Text" FontWeight="Normal" Text="{Binding Body}" TextWrapping="WrapWholeWords"/>
                        </Grid>
                    </Grid>
                </Frame>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</Page>

即使在网上进行了一些研究之后,我也找不到解决这个恼人问题的方法。有什么想法吗?

经过多次测试,我终于发现是我调用NavigateTo的框架的自动高度导致了这个问题。手动设置高度可以解决问题,但问题是我希望尺寸是动态的,但也知道内容何时停止适合屏幕。我该怎么办?

编辑:修复了此问题 - 意识到框架位于 StackPanel 下(忘记它们会破坏自动 height/width)。