ListView 不可滚动

ListView is not Scrollable

我的 xaml 布局中有以下 ListView:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <StackPanel Grid.Row="0">
        <TextBlock Text="{StaticResource AppName}" Style="{StaticResource TitleTextBlockStyle}"/>
    </StackPanel>

    <StackPanel Grid.Row="1">
        <ListView x:Name="lstStatus">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal" Margin="12">
                        <Image Source="ms-appx:///Assets/Logo.png" Margin="12" Width="150" Height="150"></Image>

                        <StackPanel Orientation="Vertical">
                            <TextBlock Text="{Binding Path='Fullname'}" Style="{StaticResource ListViewItemSubheaderTextBlockStyle}"></TextBlock>
                            <TextBlock Text="{Binding Path='FormattedCreationTime'}" TextWrapping="WrapWholeWords"></TextBlock>

                            <TextBlock Text="{Binding Path='Text'}" Style="{StaticResource ListViewItemContentTextBlockStyle}" TextWrapping="WrapWholeWords" Margin="12"></TextBlock>
                        </StackPanel>
                    </StackPanel>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </StackPanel>

</Grid>

但是,我遇到了两个问题:

我对 Windows Phone 设计还很陌生。请告诉我哪里做错了。

StackPanel 需要多少就拿多少space。随着 ListView 的增长,StackPanel 会扩展以允许它增长,因此您无法滚动查看屏幕上没有看到的项目。

将ListView放在Grid中或限制StackPanel的高度。

<Grid Grid.Row="1">
    <ListView x:Name="lstStatus">
    ...

您的 ItemTemplate 中出现类似问题,修复方法也类似。

<DataTemplate>
    <Grid Margin="12">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Image ...

        <StackPanel Grid.Column="1">
            <TextBlock ....
        </StackPanel>
    </Grid>
</DataTemplate>