我的应用程序中有一些列表框绑定到 ObservableCollections,如果项目被删除,我想为它制作动画。
我已经找到了一个关于使用 FrameworkElement.Loaded 事件为添加的项目设置动画的问题,但当然这与 Unloaded 事件的工作方式不同。
有什么方法可以在数据模板中使用吗?
编辑:我已经连接到我的 ItemsSource 中的 CollectionChanged 事件并尝试手动应用动画。目前它看起来像这样:
ListBoxItem item = stack.ItemContainerGenerator.ContainerFromIndex(0) as ListBoxItem;
item.LayoutTransform = new ScaleTransform(1, 1);
DoubleAnimation scaleAnimation = new DoubleAnimation();
scaleAnimation.From = 1;
scaleAnimation.To = 0;
scaleAnimation.Duration = new Duration(new TimeSpan(0, 0, 0, 0, 500));
ScaleTransform transform = (ScaleTransform)item.LayoutTransform;
transform.BeginAnimation(ScaleTransform.ScaleYProperty, scaleAnimation);
问题是,它根本不起作用。该项目仍然只是弹出。调用该方法时该项目仍然存在,所以它不应该在它消失之前播放动画吗?还是我做错了?