将一些ListView嵌套在ScrollViewer中

时间:2015-09-28 09:42:45

标签: c# xaml windows-10 win-universal-app uwp

我们知道ListView有一个Header属性,可以让您自定义它可以滚动到ScrollViewer区域的标题。

但是,如果ListView中的PivotItem(假设有2个PivotItem)中有Pivot,则他们共享Header也可以滚动到ScrollViewer区域。

案例中的布局可以在XAML中描述,如:

<ScrollViewer>
   <StackPanel>
     <Grid x:Name="SharedHeader" Height="200">
       <TextBlock Text="I am a header"/>
     </Grid>
     <Pivot>
       <PivotItem>
          <ListView MaxHeight="1000"/>
       </PivotItem>
       <PivotItem>
          <ListView MaxHeight="1000"/>
       </PivotItem>
     </Pivot>
   </StackPanel>
</ScrollViewer>

请注意,上面的ListView支持IncrementalLoading,因此我会限制他们的MaxHeight,以防他们加载所有项目。

我想出了一个主意:

  

首先,我禁用了VerticalScrollMode ListView的内部ScrollViewer。我检测到Pivot到外部ScrollViewer的最远距离。当数据透视到外部ScrollViewer的顶部时,我启用ListView的内部ScrollViewer并禁用外部ScrollViewer。

Howerver,在我的解决方案中,因为滚动手势属于两个ScrollViewer,我必须在一个手势中丢失手指然后执行下一个手势,这会导致滚动时效果不佳。

有什么想法实现这种效果?

0 个答案:

没有答案