c# - 如何在 Windows Phone 7 中使用图像创建无限轮播效果

标签 c# silverlight animation windows-phone-7 infinite-carousel

在我的 Windows Phone 7 应用程序中,我有一个对象列表以及与每个对象关联的图像(总共大约 40 个)。我的主页上有一张图片,还有一个按钮,用户可以单击该按钮随机选择其中一个对象,然后更改图像以匹配随机选择的对象。

对于动画效果,我想有一个水平的“老虎机”效果,屏幕上会出现另外两张原图(左边和右边),然后所有图片都会快速移动向左转。当每个离开屏幕时,它应该重新出现在右侧(刚好在屏幕外)并加载不同的图片,并且这应该持续一段设定的时间(在减速并停止到所选图像之前)。

我做了一些研究,发现 PathListBox 非常适合这种动画/旋转,但不幸的是它只在 Silverlight 4 中,而 Windows Phone 7 正在运行 Silverlight 3。另一种方法是使用水平列表框并重新排序项目以将它们移到最后......但我不太确定如何在动画中执行此操作。

最糟糕的是,真正糟糕的实现方式是为每个图像使用带有数十个未对齐关键帧的 DoubleAnimation,并计算每个图像离开屏幕的时间,然后在其后设置一个离散关键帧弹出屏幕右侧的图像。这将是完全乏味的并且涉及大量的硬编码,并且几乎不可能将缓动函数应用于(加速/减速)。这样做的最佳方法是什么?

谢谢!!

最佳答案

我认为通过使用模板,您可以使用 LoopingSelector 来实现您想要的东西。有一个很棒的series of posts on WindowsPhoneGeek.com讨论它。

基本原理是相同的,因为您有一个循环数据集,只是改变方向以使其水平滚动而不是垂直滚动的情况。

关于c# - 如何在 Windows Phone 7 中使用图像创建无限轮播效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5272355/

相关文章:

ios - UIView.animateWithDuration :animations:completion: gets canceled in XCTest

c# - 在 Visual Studio 中,我的方法名称是蓝色而不是白色

c# - iTextSharp 获取 PDF DPI

silverlight - 用 Silverlight 做广告

silverlight - View 是否可以订阅 ViewModel CLR 事件?

悬停时的 CSS 动画 - 悬停时缓慢淡出

Android 动画矢量 Drawable : change rotation degree at runtime

c#拒绝访问以创建新文件

c# - 将投影点映射到真实世界点

c# - Silverlight 5 通过 ssl 连接到 WCF 服务