■ FlowDocument 클래스를 사용해 태그 밸런스 카운트를 구하는 방법을 보여준다.
▶ FlowDocument 클래스 : 태그 밸런스 카운트 구하기 예제 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 |
using System.Windows.Documents; FlowDocument flowDocument; ... TextPointer startPointer = flowDocument.ContentStart; TextPointer endPointer = flowDocument.ContentEnd; int tagBalanceCount = GetTagBalanceCount(startPointer, endPointer); |
▶ FlowDocument 클래스 : 태그 밸런스 카운트 구하기 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
using System.Windows.Documents; #region 태그 밸런스 카운트 구하기 - GetTagBalanceCount(startPointer, endPointer) /// <summary> /// 태그 밸런스 카운트 구하기 /// </summary> /// <param name="startPointer">시작 포인터</param> /// <param name="endPointer">종료 포인터</param> /// <returns>태그 밸런스 카운트</returns> public int GetTagBalanceCount(TextPointer startPointer, TextPointer endPointer) { int balanceCount = 0; while(startPointer != null && startPointer.CompareTo(endPointer) < 0) { TextPointerContext forwardContext = startPointer.GetPointerContext(LogicalDirection.Forward); if(forwardContext == TextPointerContext.ElementStart) { balanceCount++; } else if(forwardContext == TextPointerContext.ElementEnd) { balanceCount--; } startPointer = startPointer.GetNextContextPosition(LogicalDirection.Forward); } return balanceCount; } #endregion |