Example #1
0
 public static void SetTranslateDirection(UIElement element, TranslateDirections value)
 {
     element.SetValue(TranslateDirectionProperty, value);
 }
Example #2
0
        public static void PerformPageEntranceAnimation(Page page)
        {
            if (null != page)
            {
                // stagger delay counter
                double staggerDelay = 0;

                // create default easing
                CubicEase easeIn = new CubicEase()
                {
                    EasingMode = EasingMode.EaseIn
                };
                CubicEase easeOut = new CubicEase()
                {
                    EasingMode = EasingMode.EaseOut
                };

                // storyboards
                List <Storyboard> storyboards = new List <Storyboard>();

                // get all the objects to animate
                List <UIElement> animatables = GetAllAnimatableChildren(page.Content);

                // loop through them
                foreach (UIElement animatable in animatables)
                {
                    // get the animation tag properties
                    AnimationTypes      animationType      = AnimationTag.GetAnimationType(animatable);
                    TranslateAxes       translateAxis      = AnimationTag.GetTranslateAxis(animatable);
                    TranslateDirections translateDirection = AnimationTag.GetTranslateDirection(animatable);

                    // create the animations
                    switch (animationType)
                    {
                    case AnimationTypes.Background:
                        storyboards.Add(CreateEasingAnimation(animatable, "Opacity", 0.0, 0.0, 1.0,
                                                              DEFAULT_DURATION, staggerDelay,
                                                              false, false, new RepeatBehavior(1d)));
                        break;

                    case AnimationTypes.Standard:
                        storyboards.Add(CreateEasingAnimation(animatable, "Opacity", 0.0, 0.0, 1.0,
                                                              DEFAULT_DURATION, staggerDelay,
                                                              false, false, new RepeatBehavior(1d)));

                        double startValue1 = ((TranslateDirections.FromTop == translateDirection) ||
                                              (TranslateDirections.FromLeft == translateDirection))
                                                 ? -1 * DEFAULT_TRANSLATE_OFFSET : DEFAULT_TRANSLATE_OFFSET;

                        storyboards.Add(CreateTranslateAnimation(animatable, translateAxis, startValue1, startValue1, 0,
                                                                 easeIn, easeOut, DEFAULT_DURATION, staggerDelay,
                                                                 false, false, new RepeatBehavior(1d)));
                        break;

                    case AnimationTypes.Hero:
                        storyboards.Add(CreateEasingAnimation(animatable, "Opacity", 0.0, 0.0, 1.0,
                                                              DEFAULT_DURATION, staggerDelay,
                                                              false, false, new RepeatBehavior(1d)));

                        double startValue2 = ((TranslateDirections.FromTop == translateDirection) ||
                                              (TranslateDirections.FromLeft == translateDirection))
                                                 ? -1 * DEFAULT_TRANSLATE_HERO_OFFSET : DEFAULT_TRANSLATE_HERO_OFFSET;

                        storyboards.Add(CreateTranslateAnimation(animatable, translateAxis, startValue2, startValue2, 0,
                                                                 easeIn, easeOut, DEFAULT_DURATION, staggerDelay,
                                                                 false, false, new RepeatBehavior(1d)));
                        break;

                    case AnimationTypes.Radiate:
                        storyboards.Add(CreateEasingAnimation(animatable, "Opacity", 0.0, 0.0, 1.0,
                                                              DEFAULT_DURATION * 2, staggerDelay,
                                                              false, false, new RepeatBehavior(1d)));
                        staggerDelay += DEFAULT_DURATION * 2;

                        //storyboards.Add(CreateEasingAnimation(animatable, "Opacity", 0.5, 0.5, 1.0,
                        //            DEFAULT_DURATION * 2, staggerDelay,
                        //            false, false, new RepeatBehavior(1d)));

                        //staggerDelay += DEFAULT_DURATION;

                        break;

                    case AnimationTypes.None:
                    default:
                        break;
                    }

                    // increment stagger delay
                    staggerDelay += 2 * (DEFAULT_DURATION / 3);
                }

                // loop through the animations and start them
                foreach (Storyboard storyboard in storyboards)
                {
                    storyboard.Begin();
                }
            }
        }