PassOn() public method

Passes on child animations to the specified successor. The current EventToken's child animations are activated by the successor's completion events. Used in conjunction with EventToken.PlaceHolderToken for creating animations out of order.
public PassOn ( EventToken successor ) : EventToken
successor EventToken
return EventToken
示例#1
0
        /// <summary>
        /// <para>Executes the user code after a specified duration.</para>
        /// <para>Note: This method produces a working EventToken</para>
        /// </summary>
        /// <param name="duration"></param>
        /// <param name="timeType"></param>
        /// <returns>A token representing the animation</returns>
        public override EventToken After(double duration, OrSo timeType)
        {
            DispatcherTimer timer       = new DispatcherTimer();
            EventToken      placeholder = EventToken.PlaceholderToken();

            timer.Interval = GetTimeSpan(duration, timeType);
            timer.Tick    += (s, e) =>
            {
                timer.Stop();
                placeholder.PassOn(Now());
            };
            timer.Start();

            return(placeholder);
        }
示例#2
0
        /// <summary>
        /// <para>Executes the user code a specified duration after
        /// the animation represented by the specified token.</para>
        /// <para>Note: This method produces a working EventToken</para>
        /// </summary>
        /// <param name="token"></param>
        /// <param name="duration"></param>
        /// <param name="timeType"></param>
        /// <returns>A token representing the animation</returns>
        public override EventToken After(EventToken token, double duration, OrSo timeType)
        {
            EventToken placeholder = EventToken.PlaceholderToken();

            // Separate the delay into stages
            // Use another CodeAnimator to trigger the timer after
            // the original animation
            var afterTokenAnimator = new CodeAnimator(() =>
            {
                DispatcherTimer timer = new DispatcherTimer();
                timer.Interval        = GetTimeSpan(duration, timeType);
                timer.Tick           += (s, e) =>
                {
                    timer.Stop();
                    placeholder.PassOn(Now());
                };
                timer.Start();
            });

            afterTokenAnimator.After(token);

            return(placeholder);
        }