private void OnMainGridViewItemClick(object sender, ItemClickEventArgs e) { if (MainGridView.ContainerFromItem(e.ClickedItem) is GridViewItem container) { _storeditem = container.Content as Photo; var animation = MainGridView.PrepareConnectedAnimation("ForwardConnectedAnimation", _storeditem, "PlaceImage"); animation.IsScaleAnimationEnabled = true; animation.Configuration = new BasicConnectedAnimationConfiguration(); animation.Completed += (_sender, _e) => { container.Opacity = 0.0d; }; } Frame.Navigate(typeof(DetailView), _storeditem, new SuppressNavigationTransitionInfo()); }
private async void MainGridView_Loaded(object sender, RoutedEventArgs e) { if (_storeditem != null) { MainGridView.ScrollIntoView(_storeditem, ScrollIntoViewAlignment.Default); MainGridView.UpdateLayout(); ConnectedAnimation animation = ConnectedAnimationService.GetForCurrentView().GetAnimation("BackConnectedAnimation"); if (animation != null) { animation.IsScaleAnimationEnabled = true; animation.Configuration = new DirectConnectedAnimationConfiguration(); animation.Completed += (_sender, _e) => { MainGridView.ContainerFromItem(_storeditem).SetValue(OpacityProperty, 1.0d); }; await MainGridView.TryStartConnectedAnimationAsync(animation, _storeditem, "PlaceImage"); } } }
private void ManageGridViewItemSelections() { foreach (var place in _places.SelectMany(p => p)) { place.PropertyChanged += (s, e) => { var gridViewItem = (GridViewItem)MainGridView.ContainerFromItem(place); var selectionToggle = gridViewItem.FindDescendant <ToggleButton>(); var centerX = (float)selectionToggle.ActualWidth / 2; var centerY = (float)selectionToggle.ActualHeight / 2; if (place.IsSelected) { _placesToCompare.Add(place); selectionToggle .Offset(offsetX: -92.0f, offsetY: -50.0f) .Scale(scaleX: 1.5f, scaleY: 1.5f, centerX: centerX, centerY: centerY) .Start(); } else { _placesToCompare.Remove(place); selectionToggle .Offset(offsetX: 0.0f, offsetY: 0.0f) .Scale(scaleX: 1.0f, scaleY: 1.0f, centerX: centerX, centerY: centerY) .Start(); } if (_placesToCompare.Count >= 2) { foreach (var item in MainGridView.Items) { if (item is Place p && !p.IsSelected) { if (MainGridView.ContainerFromItem(item) is GridViewItem element) { element.IsEnabled = false; } } } CommandBar.Visibility = Visibility.Visible; } else { foreach (var item in MainGridView.Items) { if (MainGridView.ContainerFromItem(item) is GridViewItem element) { element.IsEnabled = true; } } CommandBar.Visibility = Visibility.Collapsed; } MainGridView.IsItemClickEnabled = _placesToCompare.Count == 0; Wonderbar.Visibility = _placesToCompare.Count == 0 ? Visibility.Visible : Visibility.Collapsed; }; } }