WPF RichTextBox GetCharacterRect - PullRequest
       62

WPF RichTextBox GetCharacterRect

4 голосов
/ 06 июля 2011

Я пытаюсь получить прямоугольник для всех символов, набранных внутри richtextbox. Начиная с текстового указателя MyRichTextBox.Document.ContentStart, я продвигаю каждый символ, используя следующий код

currentPointer = currentPointer.GetNextInsertionPosition(LogicalDirection.Forward)

И получить «символьный» прямоугольник, используя следующий код

currentPointer.GetCharacterRect(LogicalDirection.Forward)

Но похоже, что для любого текстового указателя, возвращенного из фрагмента кода выше, ширина прямоугольника всегда равна 0. Теперь я могу вычислить прямоугольник символа на основе области между прямоугольником предыдущего символа и текущим прямоугольником символа, но это вызывает проблему при переносе слов.

Есть ли способ получить ненулевую ширину из функции GetCharacterRect () расширенного текстового поля?

EDIT

Содержимое от Microsoft здесь показывает то же самое. Кто-нибудь знает альтернативу для измерения прямоугольника символа?

1 Ответ

2 голосов
/ 15 ноября 2012

GetCharacterRect просто возвращает прямоугольник, представляющий передний край рассматриваемого символа (т. Е. Нулевую ширину, но точную высоту и положение), а не «прямоугольник-обертку» ... хотя, если это то, что вам нужно Вы можете взять передний край двух последовательных символов и выполнить математику.

...