我想开发具有以下风格/设计的应用程序:
关于实现的一些评论:
- 内容是动态加载的(三个类别(字幕 1-3)是固定的。 )
- 子项的数量(灰色)各不相同
- 我希望用户能够向右滚动(就像在 Metro 应用中一样)
不幸的是,我在实现时遇到了一些困难(在 XAML 中):
我尝试了 GridView(如示例教程中所示),它在 ItemsPanelTemplate 中具有 VirtualizingStackPanel(方向=水平)。三个类别(绿色、黄色、灰色)显示为具有不同模板的网格。
这基本上工作得很好,但现在我有我不喜欢/不需要的 GridView 的多个功能:我可以选择它并拖动它一点。我禁用了 SelectionMode 等。不幸的是,悬停效果仍然会发生,并且可能会稍微拖动整个类别。我尝试了 IsHitTestVisible=false 删除了此悬停和拖动,但禁用了类别内的所有按钮和点击事件。
我怎样才能做得更好,例如解决我的问题吗?
任何提示和建议都将受到高度赞赏。谢谢!
最佳答案
您可以使用带有 Style="{StaticResource HorizontalScrollViewerStyle}"的 ScrollViewer 并将具有三个类别的 StackPanel 作为 ItemsControls 并根据您的喜好定义 ItemsPanel,或者您可以修改 GridViewItem 的模板以更改悬停时发生的情况。您可以在设计器中打开 XAML 文件,右键单击 GridView 并选择编辑其他模板/编辑生成的项容器 (ItemContainerStyle)/编辑副本... - 提取默认模板并查看 PointerOver 视觉状态以了解内容需要改变。您可以仅从 VisualState 中删除 Storyboard,也可以删除用于可视化悬停反馈的相关控件。
关于gridview - 将不同的项目放置在 Windows 应用商店应用程序的水平列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11741497/