Подтвердить что ты не робот

Windows Phone 8.1 (WinRT): выборочный циклический переключатель

Мне нужен пользовательский Looping Selector для моего Windows Phone 8.1 (WinRT), и я не мог найти какое-либо решение на данный момент. Я хочу что-то вроде этого:

enter image description here

Windows Phone Toolkit для WP8.0 и WP8.1 Silverlight, и он не работает для WP8.1 (WinRT) apps (И этот вопрос для WP8.1 Silverlight).

Существуют элементы управления DatePicker и TimePicker для WP8.1. Есть ли способ настроить свои данные или что-то, чтобы обмануть контроль над моей проблемой?

Существует класс LoopingSelector, но кажется, что он еще не реализован.

Любое решение или идея будут оценены.

4b9b3361

Ответ 2

Я сделал что-то подобное для "бесконечного селектора дат", если это имеет смысл:)

Основа:

  • создать модель данных для отображения, которая может предоставить вам следующие/предыдущие элементы
  • имеет Canvas в качестве вашего корня управления (быстро)
  • вызывать рендеринг Loaded и повторить на SizeChanged
  • создать свойство (зависимость) для выбранного значения
  • подписаться на соответствующие события манипуляции (ManipulationDelta и *Completed) и выбрать, что ManipulationModes вы хотите разрешить (перевести, возможно, перевестиинтертезию, если вы хотите intertia)

Render:

  • render screensize/elementsize + 2 элемента (возможно, больше)
  • переместить их на манипуляции и завершенные события
  • Если элемент покидает границу управления с одной стороны, переместите последний элемент с этой стороны на другой конец, одновременно изменив отображаемые данные (в основном, если это был последний, чем firstelement.getprevious)
  • при манипулировании завершается поиск ближайшего элемента к центру и анимирует все в положение "привязки"
  • и, наконец, установите свойство selectedvalue в данные центрированного элемента

Это решение с анимацией Canvas.Left хорошо зарекомендовало себя даже на Surface RT первого поколения. Удачи!