在Windows应用商店应用中滚动GridView

时间:2014-03-20 12:10:08

标签: microsoft-metro winrt-xaml

我对Windows应用商店应用程序有以下设计概念,但我仍然坚持以最佳方式实现这一点:

Initial view when page is loaded

红色矩形表示实际设备上页面的视图。该页面左侧是标题Grid,右侧是GridView。我想要实现的是,当用户执行滑动手势而不是在GridView上滚动时,我希望整个页面都滚动,就像这样:

enter image description here

我已设法通过使用以下方法实现此目的:

<ScrollViewer HorizontalScrollMode="Enabled">
      <Grid>
          <Grid.ColumnDefinitions>
                <ColumnDefinition Width="600" />
                <ColumnDefinition Width="*" />
          </Grid.ColumnDefinitions>
          <Grid x:Name="LeftHeaderPanel" />
          <GridView Grid.Column="1"  ScrollViewer.HorizontalScrollMode="Disabled" ScrollViewer.VerticalScrollMode="Disabled" />
      </Grid>
</ScrollViewer>

但是,由于某些我不了解的原因,GridViewItems中的GridView在我这样设置后显示为StackPanel,这意味着项目不再水平堆叠 - 相反,他们现在垂直堆叠。

我还发现,通过在Height控件上设置GridView属性可以解决问题,但我试图避免明确指定控件的高度。有什么出路吗?谢谢!

1 个答案:

答案 0 :(得分:2)

试试这个:下面的代码适用于我

使用Horizo​​ntalScrollBarVisibility和VerticalScrollBarVisibility代替Horizo​​ntalScrollMode VerticalScrollMode

<ScrollViewer HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Disabled">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="600" />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>
            <Grid x:Name="LeftHeaderPanel" />
            <GridView Grid.Column="1"  ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled"/>
        </Grid>
 </ScrollViewer>