wpf DocumentViewer - получить ITextPointer от GlyphRun и наоборот - PullRequest
35 голосов
/ 02 марта 2011

Просто интересно, пытался ли кто-нибудь взломать WPF DocumentViewer, чтобы сделать его более полезным.Я почти неделю уже пытался создать более мощный API для этого элемента управления на основе его методов, которые я извлекаю с помощью рефлексии.

Все знают, как получить выделенный текст из средства просмотра документов с помощью отражения, но моя задача сложнее. Выбранный текст имеет свойства End и Start, которые возвращают ITextPointers.Также у меня есть коллекция GlyphRuns , извлеченная с использованием этого кода .И теперь, наконец, я хочу выяснить, какой GlyphRun содержит начало выбора.

Итак, я хочу знать, как преобразовать ITextPointers в GlyphRuns и наоборот.Я понимаю, что они не имеют отношения 1: 1.Этот контроль с закрытым API и последняя неделя, проведенная в Reflector, не дают мне спать спокойно.Я надеюсь, что кто-то пытался сделать это раньше или видел примеры кода и сможет провести меня через эти джунгли.

1 Ответ

1 голос
/ 12 мая 2012

Я бы порекомендовал вам отказаться от этого подхода. Делать много частных размышлений подобным образом - это не то, на чем вы должны основывать производственный код, это очень хрупко и совершенно запрещено в некоторых контекстах. Честно говоря, вам лучше найти сторонний элемент управления, который соответствует вашим потребностям, например www.infragistics.com

Или, если это не вариант, вы, вероятно, можете создать свой собственный элемент управления на количество времени, которое вам придется потратить на то, чтобы заставить это работать.

...