У меня есть несколько списков в моем приложении, связанных с ObservableCollections, и я хотел бы анимировать элемент, если он удаляется.
Я уже нашел вопрос об анимации добавленных элементов с помощью события FrameworkElement.Loaded, но, конечно, это не работает аналогично событию Unloaded.
Есть ли способ сделать это так, чтобы его можно было использовать в табличке данных?
РЕДАКТИРОВАТЬ: я подключился к событию CollectionChanged в моем ItemsSource и попытался применить анимацию вручную. В настоящее время это выглядит так:
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);
Проблема в том, что это не работает вообще. Элемент все еще просто исчезает. Элемент все еще там, когда метод вызывается, поэтому разве он не должен воспроизводить анимацию до того, как он исчезнет? Или я делаю это совершенно неправильно?