我对Windows应用商店应用程序有以下设计概念,但我仍然坚持以最佳方式实现这一点:
红色矩形表示实际设备上页面的视图。该页面左侧是标题Grid
,右侧是GridView
。我想要实现的是,当用户执行滑动手势而不是在GridView上滚动时,我希望整个页面都滚动,就像这样:
我已设法通过使用以下方法实现此目的:
<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
属性可以解决问题,但我试图避免明确指定控件的高度。有什么出路吗?谢谢!
答案 0 :(得分:2)
试试这个:下面的代码适用于我
使用HorizontalScrollBarVisibility和VerticalScrollBarVisibility代替HorizontalScrollMode 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>