private async void ListOnSelectionChanged(object sender, SelectionChangedEventArgs args) { if (args.AddedItems.Count != 1) return; var text = args.AddedItems[0] as string; if (text == Whatever) { var item = list.ContainerFromItem(text) as ListBoxItem; if (item != null) await item.AnimateAsync(new SwingAnimation()); return; } // Animate the list items out var items = list.FindAllChildItems<ListBoxItem>().ToList(); var sb = new Storyboard(); int i = 0; foreach (ListBoxItem item in items) { AnimationManager.ClearAnimationProperties(item); if (item.IsSelected) sb.Children.Add(AnimationManager.AnimationStoryboard(item, new WobbleAnimation())); else sb.Children.Add(AnimationManager.AnimationStoryboard(item, new BounceOutDownAnimation { Delay = i++ * 0.02 })); } await sb.PlayAsync(); // wait for storyboard to complete // Navigate to new page switch (text) { case "Storyboard Scrub": //Frame.Navigate(typeof (StoryboardScrubPage)); break; case "Clock": Frame.Navigate(typeof(ClockPage)); break; } }