将不同的项目放在Windows应用商店应用程序的水平列表中

时间:2012-07-31 13:41:41

标签: gridview windows-runtime windows-store-apps

我想用以下样式/设计开发我的应用程序:

design mockup of the front page 关于实施的一些评论:

  • 内容是动态加载的(三个类别(字幕1-3)是固定的。
  • 子项目数(灰色)我的变化
  • 我希望用户能够向右滚动(像往常一样在metro-apps中)

不幸的是我在实现方面遇到了一些困难(在XAML中):

  • 我尝试了一个GridView(就像在示例教程中一样),它在ItemsPanelTemplate中有一个VirtualizingStackPanel(Orientation = Horizo​​ntal)。三个类别(绿色,黄色,灰色)显示为具有不同模板的网格。

  • 这很好用,但现在我有多个GridView的功能我不喜欢/需要:我可以选择它并拖动它一点。我禁用了SelectionMode等。不幸的是,悬停效果仍然存在以及拖动整个类别的可能性。我试过IsHitTestVisible = false删除了这个悬停&拖动,但禁用了类别中的所有按钮和点击事件。

我怎样才能更好地做到这一点,例如解决我的问题?

任何提示和建议都非常感谢。谢谢!

2 个答案:

答案 0 :(得分:3)

您可以使用带有Style =“{StaticResource Horizo​​ntalScrollViewerStyle}”的ScrollViewer,并将带有三个类别的StackPanel作为ItemsControls并根据您的喜好定义ItemsPanels,或者您可以修改GridViewItem的模板以更改悬停时发生的情况。您可以在设计器中打开XAML文件,右键单击GridView并选择编辑其他模板/编辑生成的项容器(ItemContainerStyle)/编辑副本... - 提取默认模板并查看PointerOver视觉状态以查看需要改变。您可以从VisualState中删除Storyboard,也可以删除用于可视化悬停反馈的相关控件。

答案 1 :(得分:0)

在Windows 8.1中,您可以使用[Windows.UI.Xaml.Controls.Hub][1]控件,XAML Hub Control Sample中对此进行了演示。此控件用于呈现您所说明的异构数据集,并且可以包含子GridView等。