public static void SetTranslateDirection(UIElement element, TranslateDirections value) { element.SetValue(TranslateDirectionProperty, value); }
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(); } } }