将listview放入堆栈面板会破坏垂直滚动

时间:2014-08-31 18:15:28

标签: .net windows-runtime windows-store-apps winrt-xaml

在我的布局中,我有两个部分具有可变高度,我希望能够一个接一个地流动一个部分,所以我创建了一个stackpanel。堆栈面板内是另一个堆栈面板和列表视图。出于某种原因,当listview位于此外部stackpanel内部时,我无法垂直滚动。显然有更多的项目可以看到 - 我可以拉出项目列表(当你拉出一个元素超出它的内容时你得到的rubbbery效果)并看到更多的项目,但我无法滚动它们。当我将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>

1 个答案:

答案 0 :(得分:1)

像这样:

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

这会让它滚动得很好。

祝你好运!