private static void OnTranslateParamsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var oldTransitionParams = e.OldValue as ITranslateParams;
            var newTransitionParams = e.NewValue as ITranslateParams;
            var target = d as FrameworkElement;

            if (target == null)
            {
                return;
            }

            if (oldTransitionParams != null)
            {
                target.Loaded             -= OnLoadedForTranslate;
                target.DataContextChanged -= OnDataContextChangedForTranslate;
                Transitionz.RemoveVisibilityChangedHandler(target, OnVisibilityChangedForTranslate);
            }

            if (newTransitionParams != null)
            {
                var translateTransform = new TranslateTransform()
                {
                    X = newTransitionParams.From.X, Y = newTransitionParams.From.Y
                };
                target.RenderTransform = translateTransform;
                if (Transitionz.HasFlag(newTransitionParams.TransitionOn, TransitionOn.Loaded) || Transitionz.HasFlag(newTransitionParams.TransitionOn, TransitionOn.Once))
                {
                    target.Loaded += OnLoadedForTranslate;
                    if (target.IsLoaded())
                    {
                        OnLoadedForTranslate(target, null);
                    }
                }
                if (Transitionz.HasFlag(newTransitionParams.TransitionOn, TransitionOn.DataContextChanged))
                {
                    target.DataContextChanged += OnDataContextChangedForTranslate;
                }
                if (Transitionz.HasFlag(newTransitionParams.TransitionOn, TransitionOn.Visibility))
                {
                    Transitionz.AddVisibilityChangedHandler(target, OnVisibilityChangedForTranslate);
                }
            }
        }
Exemple #2
0
        private static void OnLayoutScaleParamsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var oldTransitionParams = e.OldValue as IScaleParams;
            var newTransitionParams = e.NewValue as IScaleParams;
            var target = d as FrameworkElement;

            if (target == null)
            {
                return;
            }

            if (oldTransitionParams != null)
            {
                target.Loaded             -= Transitionz.OnLoadedForScale;
                target.DataContextChanged -= Transitionz.OnDataContextChangedForScale;
            }

            if (newTransitionParams != null)
            {
                if (Transitionz.HasFlag(newTransitionParams.TransitionOn, TransitionOn.Loaded))
                {
                    target.Loaded += OnLoadedForScale;
                    if (target.IsLoaded())
                    {
                        OnLoadedForScale(target, null);
                    }
                }

                if (Transitionz.HasFlag(newTransitionParams.TransitionOn, TransitionOn.DataContextChanged))
                {
                    target.DataContextChanged += OnDataContextChangedForScale;
                }

                if (Transitionz.HasFlag(newTransitionParams.TransitionOn, TransitionOn.Visibility))
                {
                    Transitionz.AddVisibilityChangedHandler(target, OnVisibilityChangedForScale);
                }
            }
        }
        private static void OnOpacityChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var oldTransitionParams = e.OldValue as IOpacityParams;
            var newTransitionParams = e.NewValue as IOpacityParams;
            var target = d as FrameworkElement;

            if (target == null)
            {
                return;
            }

            if (oldTransitionParams != null)
            {
                target.Loaded             -= OnLoadedForOpacity;
                target.DataContextChanged -= OnDataContextChangedForOpacity;
                Transitionz.RemoveVisibilityChangedHandler(target, OnVisibilityChangedForOpacity);
            }

            if (newTransitionParams != null)
            {
                if (Transitionz.HasFlag(newTransitionParams.TransitionOn, TransitionOn.Loaded) || Transitionz.HasFlag(newTransitionParams.TransitionOn, TransitionOn.Once))
                {
                    target.Opacity = newTransitionParams.From;
                    target.Loaded += OnLoadedForOpacity;
                    if (target.IsLoaded())
                    {
                        OnLoadedForOpacity(target, null);
                    }
                }
                if (Transitionz.HasFlag(newTransitionParams.TransitionOn, TransitionOn.DataContextChanged))
                {
                    target.DataContextChanged += OnDataContextChangedForOpacity;
                }
                if (Transitionz.HasFlag(newTransitionParams.TransitionOn, TransitionOn.Visibility))
                {
                    Transitionz.AddVisibilityChangedHandler(target, OnVisibilityChangedForOpacity);
                }
            }
        }