GetAttachedTransform() private static method

Gets the attached transform of the specified dependency object.
private static GetAttachedTransform ( DependencyObject obj ) : TranslateTransform
obj System.Windows.DependencyObject The dependency object.
return System.Windows.Media.TranslateTransform
        /// <summary>
        /// Attach the translate transform that is used
        /// for the slide in effect to a framework element.
        /// </summary>
        /// <param name="element">The framework element.</param>
        private static void AttachTransform(FrameworkElement element)
        {
            Transform          originalTransform  = element.RenderTransform;
            TranslateTransform translateTransform = SlideInEffect.GetAttachedTransform(element);

            if (translateTransform == null)
            {
                translateTransform = new TranslateTransform()
                {
                    X = 0
                };

                if (originalTransform == null)
                {
                    element.RenderTransform = translateTransform;
                }
                else
                {
                    TransformGroup transformGroup = new TransformGroup();
                    transformGroup.Children.Add(originalTransform);
                    transformGroup.Children.Add(translateTransform);
                    element.RenderTransform = transformGroup;
                }

                SlideInEffect.SetAttachedTransform(element, translateTransform);
            }
        }
        /// <summary>
        /// Adds an animation corresponding to an specific framework element.
        /// Thus, the storyboard can be composed piece by piece.
        /// </summary>
        /// <param name="element">The framework element.</param>
        /// <param name="leftToRight">
        /// Indicates whether the animation should go
        /// from left to right or viceversa.
        /// </param>
        /// <param name="storyboard">A reference to the storyboard.</param>
        private static void ComposeStoryboard(FrameworkElement element, bool leftToRight, ref Storyboard storyboard)
        {
            double                        xPosition          = SlideInEffect.GetLineIndex(element) * ProportionalOffset;
            double                        from               = leftToRight ? xPosition : -xPosition;
            TranslateTransform            translateTransform = SlideInEffect.GetAttachedTransform(element);
            DoubleAnimationUsingKeyFrames animation          = new DoubleAnimationUsingKeyFrames();

            LinearDoubleKeyFrame keyFrame1 = new LinearDoubleKeyFrame();

            keyFrame1.KeyTime = TimeSpan.Zero;
            keyFrame1.Value   = from;
            animation.KeyFrames.Add(keyFrame1);

            LinearDoubleKeyFrame keyFrame2 = new LinearDoubleKeyFrame();

            keyFrame2.KeyTime = TimeSpan.FromMilliseconds(BeginTime);
            keyFrame2.Value   = from;
            animation.KeyFrames.Add(keyFrame2);

            LinearDoubleKeyFrame keyFrame3 = new LinearDoubleKeyFrame();

            keyFrame3.KeyTime = TimeSpan.FromMilliseconds(BreakTime);
            keyFrame3.Value   = from * ExponentialInterpolationWeight;
            animation.KeyFrames.Add(keyFrame3);

            EasingDoubleKeyFrame keyFrame4 = new EasingDoubleKeyFrame();

            keyFrame4.KeyTime = TimeSpan.FromMilliseconds(EndTime);
            keyFrame4.Value   = 0.0;

            keyFrame4.EasingFunction = SlideInExponentialEase;
            animation.KeyFrames.Add(keyFrame4);

            Storyboard.SetTarget(animation, translateTransform);
            Storyboard.SetTargetProperty(animation, XPropertyPath);
            storyboard.Children.Add(animation);
        }