private void ItemsGridView_Loaded(object sender, RoutedEventArgs e) { if (_navigatedUri != null) { // May be able to perform backwards Connected Animation var animation = ConnectedAnimationService.GetForCurrentView().GetAnimation("Image"); if (animation != null) { var item = Model.Items.Where(compare => compare.ImageUrl == _navigatedUri).First(); ItemsGridView.ScrollIntoView(item, ScrollIntoViewAlignment.Default); ItemsGridView.UpdateLayout(); var container = ItemsGridView.ContainerFromItem(item) as GridViewItem; if (container != null) { var root = (FrameworkElement)container.ContentTemplateRoot; var image = (Image)root.FindName("Image"); // Wait for image opened. In future Insider Preview releases, this won't be necessary. image.Opacity = 0; image.ImageOpened += (sender_, e_) => { image.Opacity = 1; animation.TryStart(image); }; } else { animation.Cancel(); } } _navigatedUri = null; } }