Как создать эффект бесконечной карусели с изображениями в Windows Phone 7
В моем приложении для Windows Phone 7 у меня есть список объектов с изображениями, связанных с каждым (всего около 40). У меня есть одно из изображений на моей главной странице и кнопка, которую пользователь может нажать, чтобы случайным образом выбрать один из объектов, а затем изменить изображение, чтобы оно соответствовало случайно выбранному объекту.
Для эффекта анимации я хотел бы иметь горизонтальный эффект "игрового автомата", при котором на экране появятся два других изображения (слева и справа) оригинала, а затем все они будут очень быстро перемещаться влево, Когда каждый из них покидает экран, он должен появиться справа (сразу за экраном) с загруженным другим изображением, и все это должно продолжаться в течение заданного промежутка времени (до замедления и остановки до выбранного изображения).
Я провел некоторое исследование и обнаружил, что PathListBox идеально подходит для такого рода анимации / поворота, но, к сожалению, это только в Silverlight 4, а Windows Phone 7 работает под управлением Silverlight 3. Другим способом будет использование горизонтального списка и перезапуск. -упорядочить элементы, чтобы переместить их до конца... но я не совсем уверен, как это сделать в анимации.
Наихудшее - худшее, действительно ужасный способ реализовать его - это использовать DoubleAnimation с десятками неправильно выровненных ключевых кадров для каждого изображения и вычислять, когда каждое изображение покидает экран, а затем сразу после этого устанавливать дискретный ключевой кадр, чтобы вставить изображение в правая часть экрана. Это было бы очень утомительно и потребовало бы тонны жесткого кодирования, и было бы почти невозможно применить функцию замедления (ускорение / замедление). Каков наилучший способ сделать это?
Спасибо!!
2 ответа
Эффект, который вы ищете, может быть практически достигнут с помощью элемента управления Pivot - Endless Pivot Control
В качестве альтернативы есть несколько реализаций с открытым исходным кодом, которые похожи на Coverflow Apple - например, http://sigurdsnorteland.wordpress.com/2010/09/19/wp7-samples-upgraded-to-rtm/
Я думаю, что с некоторыми манипуляциями с шаблонами вы могли бы использовать LoopingSelector
реализовать то, что вы ищете. На WindowsPhoneGeek.com есть отличная серия публикаций, в которых это обсуждается.
Базовый принцип тот же, что у вас есть набор циклических данных, это всего лишь случай изменения ориентации, чтобы он прокручивался горизонтально, а не вертикально.