private void PausePointDecouple_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            DebugHelper.AssertUIThread();

            if (e != null)
            {
                TimelinePausePoint pausePoint = e.Parameter as TimelinePausePoint;

                if ((pausePoint != null) && pausePoint.HasCoupledMarker)
                {
                    e.Handled = true;

                    pausePoint.Remove();
                }
            }
        }
        public override void Remove()
        {
            DebugHelper.AssertUIThread();
            Debug.Assert(this.owner != null);

            if (!this.IsReadOnly)
            {
                this.owner.Remove(this);

                TimelinePausePoint temp = this.pausePoint;
                this.pausePoint = null;

                if (temp != null)
                {
                    temp.Remove();
                }
            }
        }