首页 文章

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

提问于
浏览
13

我想为我的 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

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

  • 1

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

    基本:

    • 创建要显示的数据模型,该模型可以为您提供下一个/上一个元素

    • 有一个 Canvas 作为你的控制根(很快)

    • 调用渲染 Loaded 并在 SizeChanged 上重新渲染

    • 为选定值创建(依赖)属性

    • 订阅相关的操纵事件( ManipulationDelta*Completed )并选择您想要允许的内容(翻译,如果您想要intertia,可能是translateintertia)

    渲染:

    • render screensize / elementsize 2个元素(可能更多)

    • 将它们移到actionsdelta并完成事件

    • 如果元素在一侧离开控制边界,则将该侧的最后一个元素移动到另一端,同时更改显示的数据(基本上如果它是最后一个,则为firstelement.getprevious)

    • on manipulationcompleted找到距离中心最近的元素,并将所有内容设置为'snap'位置

    • 并最终将selectedvalue属性设置为居中元素的数据

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

相关问题