Просто интересно, пытался ли кто-нибудь попытаться взломать WPF DocumentViewer
, чтобы сделать его более полезным. Я потратил почти неделю на создание более мощного API для этого элемента управления на основе его методов, которые я извлекаю с помощью отражения.
Каждый знает, как получить выделенный текст из средства просмотра документов через отражение, но моя задача сложнее. Выбранный текст имеет свойства End
и Start
, которые возвращают ITextPointers
. Также у меня есть коллекция GlyphRuns, извлеченная с помощью этого кода. И теперь, наконец, я хочу узнать, какой GlyphRun
содержит начало выбора.
Итак, я хочу знать, как преобразовать ITextPointers
в GlyphRuns
и наоборот. Я понимаю, что у них нет отношения 1:1. Этот контроль с закрытым API и прошлой неделей, проведенный в Reflector, не позволяет мне хорошо спать. Надеюсь, что кто-то попытался сделать это раньше или увидеть образцы кода и сможет провести меня через эти джунгли.