Example #1
0
        private void ContainerItem_Loaded(object sender, RoutedEventArgs e)
        {
            var itemsPanel    = (ItemsWrapGrid)_patternPickerGridView.ItemsPanelRoot;
            var itemContainer = (GridViewItem)sender;

            itemContainer.Loaded -= this.ContainerItem_Loaded;

            var button = itemContainer.FindDescendant <Button>();

            if (button != null)
            {
                button.Click -= MoreInfoClicked;
                button.Click += MoreInfoClicked;
            }

            if (!_isCreatorsUpdateOrAbove)
            {
                return;
            }

            var itemIndex = _patternPickerGridView.IndexFromContainer(itemContainer);

            var referenceIndex = itemsPanel.FirstVisibleIndex;

            if (_patternPickerGridView.SelectedIndex >= 0)
            {
                referenceIndex = _patternPickerGridView.SelectedIndex;
            }

            var relativeIndex = Math.Abs(itemIndex - referenceIndex);

            if (itemContainer.Content != CurrentPattern && itemIndex >= 0 && itemIndex >= itemsPanel.FirstVisibleIndex && itemIndex <= itemsPanel.LastVisibleIndex)
            {
                var staggerDelay = TimeSpan.FromMilliseconds(relativeIndex * 30);

                var animationCollection = new AnimationCollection()
                {
                    new OpacityAnimation()
                    {
                        From = 0, To = 1, Duration = TimeSpan.FromMilliseconds(400), Delay = staggerDelay, SetInitialValueBeforeDelay = true
                    },
                    new ScaleAnimation()
                    {
                        From = "0.9", To = "1", Duration = TimeSpan.FromMilliseconds(400), Delay = staggerDelay
                    }
                };

                VisualEx.SetNormalizedCenterPoint(itemContainer, "0.5");

                animationCollection.StartAnimation(itemContainer);
            }
        }
        private void OnItemContainerLoaded(object sender, RoutedEventArgs e)
        {
            var itemsPanel    = (ItemsWrapGrid)this.ItemsPanelRoot;
            var itemContainer = (GridViewItem)sender;

            itemContainer.Loaded -= this.OnItemContainerLoaded;

            if (!_isCreatorsUpdateOrAbove)
            {
                return;
            }

            var itemIndex = this.IndexFromContainer(itemContainer);

            var referenceIndex = itemsPanel.FirstVisibleIndex;

            if (this.SelectedIndex >= 0)
            {
                referenceIndex = this.SelectedIndex;
            }

            var relativeIndex = Math.Abs(itemIndex - referenceIndex);

            if (itemIndex >= 0 && itemIndex >= itemsPanel.FirstVisibleIndex && itemIndex <= itemsPanel.LastVisibleIndex)
            {
                var staggerDelay = TimeSpan.FromMilliseconds(relativeIndex * 30);

                var animationCollection = new AnimationCollection()
                {
                    new OpacityAnimation()
                    {
                        From = 0, To = 1, Duration = TimeSpan.FromMilliseconds(400), Delay = staggerDelay, SetInitialValueBeforeDelay = true
                    },
                    new ScaleAnimation()
                    {
                        From = "0.9", To = "1", Duration = TimeSpan.FromMilliseconds(400), Delay = staggerDelay
                    }
                };

                VisualEx.SetNormalizedCenterPoint(itemContainer, "0.5");

                animationCollection.StartAnimation(itemContainer);
            }
        }