2014-08-31 58 views
0

在我的布局中,我有两个部分将有一个变量高度,我想能够一个接一个地流动,所以我创建了一个堆栈面板。在堆栈面板内部是另一个堆栈面板和一个列表视图。出于某种原因,当列表视图位于此外层堆栈面板内时,我无法垂直滚动。显然有更多的项目可以看到 - 我可以拉出物品清单(当您将元素拉出超出其内容时获得的垃圾效果)并查看更多物品,但我无法翻阅它们。当我将列表视图移出堆栈面板时,它会完美滚动,但这会打破预期布局。有任何想法吗?下面是本节中的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> 
+0

什么是外部网格行高度定义? – Jon 2014-09-02 20:54:41

+0

就像人们所期望的那样。 2行,(自动,*)和2列(自动,*) – Sinaesthetic 2014-09-03 02:06:49

+0

由于StackPanel将增长到适合整个列表,解决方案是删除外部StackPanel并将行添加到内部Grid(auto,*)和地点第0行的内部StackPanel和第1行的ListView。 – Jon 2014-09-03 17:26:02

回答

1

像这样:

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

这将让它滚动就好了。

祝你好运!

+1

大声笑 - 很好,您在上面的评论中提出了一个答案。 – Jon 2014-09-04 15:58:55