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); } } }
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); } } }