/// <summary>
        /// Handles changes to the AxisOfFlip property.
        /// </summary>
        /// <param name="d">
        /// The <see cref="DependencyObject"/> on which
        /// the property has changed value.
        /// </param>
        /// <param name="e">
        /// Event data that is issued by any event that
        /// tracks changes to the effective value of this property.
        /// </param>
        private static void OnAxisOfFlipChanged(
            DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var        target        = (FlipTransition)d;
            AxisOfFlip oldAxisOfFlip = (AxisOfFlip)e.OldValue;
            AxisOfFlip newAxisOfFlip = target.AxisOfFlip;

            target.OnAxisOfFlipChanged(oldAxisOfFlip, newAxisOfFlip);
        }
        /// <summary>
        /// Provides derived classes an opportunity to handle changes
        /// to the AxisOfFlip property.
        /// </summary>
        /// <param name="oldAxisOfFlip">The old AxisOfFlip value</param>
        /// <param name="newAxisOfFlip">The new AxisOfFlip value</param>
        private void OnAxisOfFlipChanged(
            AxisOfFlip oldAxisOfFlip, AxisOfFlip newAxisOfFlip)
        {
            if (this.ForwardInAnimation != null)
            {
                ((FlipAnimation)this.ForwardInAnimation).AxisOfFlip = newAxisOfFlip;
            }

            if (this.ForwardOutAnimation != null)
            {
                ((FlipAnimation)this.ForwardOutAnimation).AxisOfFlip = newAxisOfFlip;
            }

            if (this.BackwardInAnimation != null)
            {
                ((FlipAnimation)this.BackwardInAnimation).AxisOfFlip = newAxisOfFlip;
            }

            if (this.BackwardOutAnimation != null)
            {
                ((FlipAnimation)this.BackwardOutAnimation).AxisOfFlip = newAxisOfFlip;
            }
        }
        /// <summary>
        /// Provides derived classes an opportunity to handle changes
        /// to the AxisOfFlip property.
        /// </summary>
        /// <param name="oldAxisOfFlip">The old AxisOfFlip value</param>
        /// <param name="newAxisOfFlip">The new AxisOfFlip value</param>
        private void OnAxisOfFlipChanged(
            AxisOfFlip oldAxisOfFlip, AxisOfFlip newAxisOfFlip)
        {
            if (this.ForwardInAnimation != null)
            {
                ((FlipAnimation)this.ForwardInAnimation).AxisOfFlip = newAxisOfFlip;
            }

            if (this.ForwardOutAnimation != null)
            {
                ((FlipAnimation)this.ForwardOutAnimation).AxisOfFlip = newAxisOfFlip;
            }

            if (this.BackwardInAnimation != null)
            {
                ((FlipAnimation)this.BackwardInAnimation).AxisOfFlip = newAxisOfFlip;
            }

            if (this.BackwardOutAnimation != null)
            {
                ((FlipAnimation)this.BackwardOutAnimation).AxisOfFlip = newAxisOfFlip;
            }
        }