예제 #1
0
        /// <summary>
        /// 这个函数被用来注册到文档的LengthChange事件,
        /// 使文本被修改时,书签位置能够同步更新
        /// </summary>
        /// <param name="R">被修改的范围</param>
        /// <param name="Change">修改前和修改后的片段的字数差异</param>
        private void LengthChange(Range R, int Change)
        {
            var Begin = R.Start.Value;
            var End   = R.End.Value - 1;

            switch (IInterval.CheckInInterval(Pos, Begin, End))
            {
            case IntervalPosition.Overflow:
                Pos += Change;
                break;

            case IntervalPosition.Located when Change < 0:
                Pos = Math.Min(Pos, End + Change);
                break;
            }
        }