TextRange를 사용하여 강조 표시 할 구의 시작 부분을 가리키는 TextPointer tp가 있습니다. 그러나이 코드 : 무스 AU가FlowDocument에서 문구 강조 표시
< 내가 사용 코 = 무스 AU 콜라 렌 = 18 TR 길이 = 15 tr.text :
구문 :
TextRange tr = new TextRange(tp, tp.GetPositionAtOffset(phrase.Length));
Debug.WriteLine("phrase:" + phrase + ", len=" + phrase.Length + " and tr length=" + tr.Text.Length + " and tr.text=" + tr.Text + "<");
잘못된 출력을 생성 내 문서에 프레이즈의 시작 위치를 검색하려면 다음
x = tr.Text.IndexOf(phrase);
것은 어떻게 문자열 구문과의 TextRange을 주어진 문자열 TextRange를받을 수 있나요 문서?
다음 대답
는 단어를 찾는 MSDN 예제 코드를 보여줍니다https://stackoverflow.com/a/984836/317033
를 내 경우에는 문구와 함께 작동하지 않습니다하지만. 문서 별 : http://msdn.microsoft.com/en-us/library/ms598662(v=vs.110).aspx GetPositionAtOffset 오프셋에는 보이는 문자가 아닌 'symbols'이 포함됩니다. 따라서 GetPositionAtOffset과 함께 string.IndexOf()를 사용할 수 없으므로 샘플 코드가 제대로 작동하지 않습니다.
그래서 오프셋에 포함해야하는 문자가 아닌 요소 (문서의 기호)를 올바르게 반영해야하는 것처럼 보입니다. 내 순진한 계산은 구문이 실행되는 횟수를 계산하지 않습니다.
어구의 길이가 1을 초과하면 구문이 3 번 실행됩니다. * 어깨를 으 *하면 – Mark