.net 将listview放入堆栈面板会中断垂直滚动

.net 将listview放入堆栈面板会中断垂直滚动,.net,windows-runtime,windows-store-apps,winrt-xaml,.net,Windows Runtime,Windows Store Apps,Winrt Xaml,在我的布局中,我有两个具有可变高度的部分,我希望能够一个一个地流动,所以我创建了一个stackpanel。堆栈面板内部是另一个堆栈面板和一个listview。由于某些原因,当listview位于外部stackpanel的内部时,我无法垂直滚动。显然还有更多的项目要看——我可以向上拉项目列表(当你把一个元素拉到它的内容之外时,你会得到一种粗俗的效果),然后看到更多的项目,但我无法滚动它们。当我将listview移出堆栈面板时,它会完美地滚动,但这会破坏预期的布局。有什么想法吗?以下是本节的xaml

在我的布局中,我有两个具有可变高度的部分,我希望能够一个一个地流动,所以我创建了一个stackpanel。堆栈面板内部是另一个堆栈面板和一个listview。由于某些原因,当listview位于外部stackpanel的内部时,我无法垂直滚动。显然还有更多的项目要看——我可以向上拉项目列表(当你把一个元素拉到它的内容之外时,你会得到一种粗俗的效果),然后看到更多的项目,但我无法滚动它们。当我将listview移出堆栈面板时,它会完美地滚动,但这会破坏预期的布局。有什么想法吗?以下是本节的xaml:

<Grid Grid.Row="1" Grid.Column="1">
    <StackPanel Orientation="Vertical">
        <StackPanel DataContext="{Binding SelectedLink}">
            <TextBlock Text="{Binding Author}" Foreground="Blue" FontSize="20"/>
            <TextBlock Text="{Binding Title}" TextWrapping="WrapWholeWords"/>
            <TextBlock Text="{Binding SelfText}" TextWrapping="Wrap" Margin="0, 20, 0, 0" />
        </StackPanel>
        <ListView x:Name="CommentsListView" ItemsSource="{Binding SelectedLinkComments}" IsItemClickEnabled="True" IsSwipeEnabled="False" IsHoldingEnabled="True" Holding="CommentsListView_OnHolding">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <Border BorderBrush="Gray" Padding="2" Margin="2">
                        <StackPanel Orientation="Vertical">
                            <TextBlock Text="{Binding Author}" Foreground="Green"/>
                            <TextBlock Text="{Binding Body}"/>
                        </StackPanel>
                    </Border>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </StackPanel>
</Grid>

像这样:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <StackPanel Grid.Row="0">
        <!-- your textblocks -->
    </StackPanel>
    <ListView Grid.Row="1" />
</Grid>

这会让它滚动的很好


祝你好运

外部网格行高度定义是什么?正如人们所期望的那样。2行,(自动,*)和2列(自动,*)由于StackPanel将增长以适应整个列表,解决方案是删除外部StackPanel并将行添加到内部网格(自动,*),并将内部StackPanel放置在第0行,将ListView放置在第1行。LOL-太好了,您从我上面的评论中得出了答案。