Esempio n. 1
0
        // Token: 0x06000CFE RID: 3326 RVA: 0x0003040C File Offset: 0x0002E60C
        private static Storyboard GenerateDynamicTransitionAnimations(FrameworkElement root, VisualStateGroup group, VisualState newState, VisualTransition transition)
        {
            IEasingFunction easingFunction = null;
            Storyboard      storyboard     = new Storyboard();

            if (transition != null)
            {
                Duration generatedDuration = transition.GeneratedDuration;
                storyboard.Duration = transition.GeneratedDuration;
                easingFunction      = transition.GeneratedEasingFunction;
            }
            else
            {
                storyboard.Duration = new Duration(TimeSpan.Zero);
            }
            Dictionary <VisualStateManager.TimelineDataToken, Timeline> dictionary  = VisualStateManager.FlattenTimelines(group.CurrentStoryboards);
            Dictionary <VisualStateManager.TimelineDataToken, Timeline> dictionary2 = VisualStateManager.FlattenTimelines((transition != null) ? transition.Storyboard : null);
            Dictionary <VisualStateManager.TimelineDataToken, Timeline> dictionary3 = VisualStateManager.FlattenTimelines(newState.Storyboard);

            foreach (KeyValuePair <VisualStateManager.TimelineDataToken, Timeline> keyValuePair in dictionary2)
            {
                dictionary.Remove(keyValuePair.Key);
                dictionary3.Remove(keyValuePair.Key);
            }
            foreach (KeyValuePair <VisualStateManager.TimelineDataToken, Timeline> keyValuePair2 in dictionary3)
            {
                Timeline timeline = VisualStateManager.GenerateToAnimation(root, keyValuePair2.Value, easingFunction, true);
                if (timeline != null)
                {
                    timeline.Duration = storyboard.Duration;
                    storyboard.Children.Add(timeline);
                }
                dictionary.Remove(keyValuePair2.Key);
            }
            foreach (KeyValuePair <VisualStateManager.TimelineDataToken, Timeline> keyValuePair3 in dictionary)
            {
                Timeline timeline2 = VisualStateManager.GenerateFromAnimation(root, keyValuePair3.Value, easingFunction);
                if (timeline2 != null)
                {
                    timeline2.Duration = storyboard.Duration;
                    storyboard.Children.Add(timeline2);
                }
            }
            return(storyboard);
        }