在我的 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/