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
作为你的控件根(它很快) - 调用渲染在
SizeChanged
上Loaded
并重新渲染 - 为选定的值创建(依赖)属性
- 订阅相关的操作事件(
ManipulationDelta
,和*Completed
)并选择你想要允许的ManipulationModes
(翻译,如果你想要intertia,可能是translateintertia)
渲染:
- 渲染屏幕大小/元素大小+ 2个元素(可能更多)
- 移动他们的操纵和完成事件
- 如果一个元素在一侧离开控制边界,则将该侧的最后一个元素移动到另一端,同时更改显示的数据(基本上如果它是最后一个,则为firstelement.getprevious)
- 在manipulationcompleted上找到最接近中心的元素,并将所有内容设置为“snap”位置
- 最后将selectedvalue属性设置为居中元素的数据
这个具有动画function的Canvas.Left解决方案即使在第一代Surface RT上也表现良好。 祝好运!
- 为什么GridViewRow的“FindControl”找不到下拉列表?
- Windows 8 Windows应用中的中继命令
- entity framework以一对多替换集合的正确方法
- 如何用正则表达式用小写字母替换大写字母?
- UserPrincipal.FindByIdentity中的.NET 4.5错误(System.DirectoryServices.AccountManagement)
- HttpClient.BaseAddress的目的是什么,为什么我不能在第一次请求后更改它
- 上传后从客户端PC删除文件,但仅在获得客户端许可后才能删除
- 如何在TextBox中只允许输入0或1?
- 如何在C#中建立首字母大写