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

时间:2015-01-01 07:59:49

标签: c# xaml windows-runtime windows-phone-8.1 loopingselector

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

enter image description here

Windows Phone Toolkit适用于WP8.0和WP8.1 Silverlight,它不适用于WP8.1(WinRT)应用程序(this question适用于WP8.1 Silverlight)。

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

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

任何解决方案或想法都将受到赞赏。

2 个答案:

答案 0 :(得分:1)

不确定您是否仍需要此...但此处有一个WinRT LoopItemsPanel项目:http://blogs.msdn.com/b/mim/archive/2013/04/16/winrt-create-a-custom-itemspanel-for-an-itemscontrol.aspx

答案 1 :(得分:0)

我为一个"无限捕捉日期选择器做了类似的事情"如果这是有道理的:)

基础:

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

渲染:

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

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