2011-07-06 3 views
3

richtextbox 안에 입력 한 모든 문자에 대해 문자 rect를 얻으려고합니다. MyRichTextBox.Document.ContentStart의 textpointer에서 시작, 다음 코드WPF RichTextBox GetCharacterRect

currentPointer = currentPointer.GetNextInsertionPosition(LogicalDirection.Forward) 

를 사용하여 모든 문자를 발전 그리고 다음 코드

currentPointer.GetCharacterRect(LogicalDirection.Forward) 

를 사용하여 "문자"RECT를 검색하지만 어떤을 위해, 모양 위 코드에서 textpointer가 반환되면 rect의 너비는 항상 0입니다. 이제 이전 문자 rect와 현재 문자 rect 사이의 영역을 기준으로 문자 rect를 계산할 수 있지만 단어 줄 바꿈이 발생하면 문제가 발생합니다 .

서식있는 텍스트 상자의 GetCharacterRect() 함수에서 0이 아닌 너비를 얻을 수있는 방법이 있습니까?

편집

마이크로 소프트 here의 내용은 동일을 보여줍니다. 누구든지 문자 rect를 측정하는 대안을 알고 있습니까?

답변

2

GetCharacterRect는 "래퍼 사각형"이 아닌 해당 문자의 앞 가장자리를 나타내는 사각형을 반환합니다 (즉, 너비가 0이지만 정확한 높이와 위치) 당신은 2 연속 문자의 선두 가장자리를 잡고 수학을 할 수 있습니다.

관련 문제