2015-01-01 22 views
13

我想为我的Windows Phone 8.1(WinRT)定制循环选择器,但目前我找不到任何解决方案。我想是这样的: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类,但它似乎尚未实现。

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

+0

被捡拾工具类封了?如果没有,则从它们继承一个新类并重写这些方法,以便它们按照你的要求进行操作。 – magicandre1981

+0

我怎样才能找到他们是否密封?这是一个类:http://msdn.microsoft.com/library/windows/apps/dn299280。它是“**公共类TimePicker:Control **”。那我可以继承它吗? –

+0

@ magicandre1981,如果你有时间从你所说的话(和回答问题)中创建一个工作示例,那对每个人都可以使用。先谢谢你。 –

回答

0

我做了这样的一个“无限捕捉日期选择”如果是有道理的:)

基础:

  • 创建一个数据模型来显示它可以为你提供一个/上一个元素
  • Canvas作为控制根(它的速度快)
  • 呼叫呈现Loaded和重新呈现在SizeChanged
  • 创建(依赖)属性选择的值
  • 认购相关的操作事件(ManipulationDelta*Completed),并选择 ManipulationModes你想要什么允许(翻译,也许translateintertia如果你想intertia)

渲染:

  • 渲染屏幕尺寸/ elementsize + 2个元件(可能更多)
  • 移动它们上在ManipulationDelta和已完成事件
  • 如果一个元素离开控制边界的一边,将该边的最后一个元素移动到另一边,同时改变显示的数据(基本上,如果它是最后一个,则比firstelement.getprevious)
  • on在ManipulationCompleted找到中心最接近的元素,和动画都到“捕捉”位置
  • 最后是你的SelectedValue属性设置为居中的元素
的数据

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

+0

感谢您的回答。但是,你能否提供一些代码或链接到工作示例?先谢谢你。 –

+0

对不起,这是一个工作项目,所以我不能真正分享代码:( –

+0

谢谢,但我不想复制/粘贴代码。你会创建一个示例项目?它可能是伟大的每个人使用。 –

相关问题