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

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

在此处输入图像描述

Windows Phone Toolkit适用于WP8.0和WP8.1 Silverlight,它不适用于WP8.1(WinRT)应用程序( 这个问题适用于WP8.1 Silverlight)。

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

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

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

不确定你是否还需要这个…但是这里有一个WinRT LoopItemsPanel项目: http : //blogs.msdn.com/b/mim/archive/2013/04/16/winrt-create-a-custom- itemspanel换的,itemscontrol.aspx

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

基本:

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

渲染:

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

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