アプリに ObservableCollections にバインドされた Listboxes がいくつかあります。項目が削除されている場合は、その項目をアニメーション化したいと考えています。
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);
問題は、まったく機能しないことです。アイテムはまだ飛び出します。メソッドが呼び出されたとき、アイテムはまだそこにあるので、アイテムが消える前にアニメーションを再生するべきではありませんか? それとも私はそれを完全に間違っていますか?