我有一个 UI 实现挑战(至少对我来说)。需要一个无限循环的 3 个窗格的滚动视图:当用户从窗格 2 向右滑动到窗格 3 时,他们应该能够继续向右滚动到窗格 1 并在窗格中继续滚动,无休止地重复。一次只显示一个完整的窗格 - 没有悬边。
像这样的东西:
我发现的所有示例都非常精细,带有数据绑定和视图模型,通常基于 ListBoxes/views。我们不需要任何复杂的东西:我们的 3 个窗格不是动态的,总是有 3 个。
我们当前的实现,它只在 pane1 和 pane3 之间来回滚动(满足之前的要求),遵循 MSDN WinRT 控件示例:
<ScrollViewer>
<StackPanel>
<Grid /> <!-- pane1 -->
<Grid /> <!-- pane2 -->
<Grid /> <!-- pane3 -->
</StackPanel>
</ScrollViewer>
就目前而言,这工作得很好,因为我们有触摸体验,并且内容跟随用户的手指并且在他们滚动时可见。
到目前为止,我的想法是:
- 在“开始”和“结束”上添加另一个网格
- 计算滚动时的水平偏移
- 在面板进行到一半时,将“最后一个”窗格内容复制/插入到“下一个”窗格中
但我不知道这是否会奏效,总的来说我不确定如何去做。我们正在寻找一些非常简单的东西来理解这一点并进行可用性测试,但它必须真正在 C#/XAML(Windows 应用商店应用程序)中工作。所以我在向更聪明的人寻求建议。