protected override void OnNavigatedTo(NavigationEventArgs e) { _compositor = ElementCompositionPreview.GetElementVisual(this)?.Compositor; if (e.Parameter != null) { int.TryParse(e.Parameter.ToString(), out _animationDuration); } _gridview = ElementCompositionPreview.GetElementVisual(this); ApplyLighting(); PhotoCollectionViewer.Loaded += async(o_, e_) => { var connectedAnimation = ConnectedAnimationService .GetForCurrentView() .GetAnimation("Image"); if (connectedAnimation != null) { var item = PhotoCollectionViewer.Items[persistedItemIndex]; PhotoCollectionViewer.ScrollIntoView(item); await PhotoCollectionViewer.TryStartConnectedAnimationAsync( connectedAnimation, item, "Image" ); } }; }
private void PhotoCollectionViewer_ItemClick(object sender, ItemClickEventArgs e) { ConnectedAnimationService.GetForCurrentView().DefaultDuration = TimeSpan.FromSeconds(0.5); persistedItemIndex = PhotoCollectionViewer.Items.IndexOf(e.ClickedItem); PhotoCollectionViewer.PrepareConnectedAnimation("Image", e.ClickedItem, "Image"); Canvas.SetZIndex(this, 1); var animation = _compositor.CreateScalarKeyFrameAnimation(); animation.Target = "Opacity"; animation.Duration = TimeSpan.FromSeconds(0.6); animation.InsertKeyFrame(1, 0); ElementCompositionPreview.SetImplicitHideAnimation(this, animation); App.MainFrame.Navigate(typeof(ImageEditingPage), e.ClickedItem as Photo); }