Windows Phone 8.1(WinRT):自定义循环选择器

Sab*_*eti 13 c# xaml windows-runtime loopingselector windows-phone-8.1

我想为我的Windows Phone 8.1(WinRT)定制一个循环选择器,目前我找不到任何解决方案.我想要这样的东西:

在此输入图像描述

Windows Phone的工具包是WP8.0和WP8.1 Silverlight和它不为WP8.1(WinRT的)应用程序的工作(而且这个问题是WP8.1的Silverlight).

WP8.1 有DatePicker和TimePicker控件.有没有办法自定义他们的数据或某些东西来控制我的问题?

有一个LoopingSelector类,但它似乎尚未实现.

任何解决方案或想法将不胜感激.

Tam*_*eme 0

如果有意义的话,我为“无限捕捉日期选择器”做了类似的事情:)

基本:

  • 创建一个要显示的数据模型,它可以为您提供下一个/上一个元素
  • 有一个Canvas作为你的控制根(它很快)
  • 调用渲染Loaded并重新渲染SizeChanged
  • 为选定的值创建(依赖)属性
  • 订阅相关的操作事件(ManipulationDelta、 和*Completed)并选择 ManipulationModes您想要允许的事件(翻译,如果您想要 intertia,则可以翻译 intertia)

使成为:

  • 渲染屏幕大小/元素大小 + 2 个元素(也许更多)
  • 将它们移动到操作增量和已完成的事件上
  • 如果一个元素离开一侧的控制边界,则将该侧的最后一个元素移动到另一端,同时更改显示的数据(基本上,如果它是最后一个,则比firstelement.getprevious)
  • 在操作完成时找到距离中心最近的元素,并将所有内容设置为“捕捉”位置
  • 最后将 selectedvalue 属性设置为居中元素的数据

即使在第一代 Surface RT 上,这种带有动画 Canvas.Left 的解决方案也表现良好。祝你好运!