/// <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; } }