public void RemoveAnimationClock(DependencyProperty property, AnimationClock clock)
        {
            if (_clocks == null)
            {
                throw new InvalidOperationException();
            }

            if (clock == null)
            {
                _clocks.Remove(property);
                return;
            }

            AnimationClockCollection clocks = _clocks[property.GlobalIndex] as AnimationClockCollection;

            clocks.Remove(clock);
        }
        public void ApplyAnimationClock(DependencyProperty property, AnimationClock clock, HandoffBehavior handoffBehavior)
        {
            if (_clocks == null)
            {
                _clocks = new Hashtable();
            }

            AnimationClockCollection clocks = _clocks[property.GlobalIndex] as AnimationClockCollection;

            if (clocks == null)
            {
                _clocks[property.GlobalIndex] = clocks = new AnimationClockCollection();
            }

            if (handoffBehavior == HandoffBehavior.SnapshotAndReplace)
            {
                clocks.Clear();
            }

            clocks.Add(clock);
        }