WPF:如何为组件列表添加动画效果?

3
假设我有一个可视化对象列表(CustomControls),它们可能在StackPanel中或ListView上作为项,我认为容器是这个问题的一部分。
从视觉上来看,您可以将这些对象视为队列中的项目。每次我从此队列底部弹出一个对象时,我希望使用弹出的对象从视图框架中退出整个队列,并且新对象(想象一下查看框架仅显示子集)与其余元素一起滑入。
创建此动画的最佳方法是什么,以及最佳容器是什么?
1个回答

5
看看Kevin Moore的AnimatingTilePanel。当面板中添加或删除元素时,其余项目会被动画移开或占据剩余空间。你想做类似的事情,但是基于StackPanel逻辑。
不过你需要分两步来解决问题。第二步应该会更容易些。
  1. 创建一个面板(而不是控件),以你想要的方式对其子项进行动画处理。
  2. 创建一个ListBox模板,指定使用你的新面板而不是默认的StackPanel的ItemsPanelTemplate
最终,你无需创建自定义ListBox控件。与ListBox的交互(通过其Items属性或最好是绑定的集合)将完全像没有动画一样进行。你将依靠自定义Panel类来提供动画效果。 更新
我还发现了这个示例:AnimatedLayoutPanel,它非常相似,但有一个很好的基于Silverlight的展示。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接