c# wpf documentviewer glyph

c# - wpf DocumentViewer: obtenga ITextPointer por GlyphRun y ​​viceversa



(1)

Yo recomendaría que abandones este enfoque. Hacer muchos reflejos privados como este no es algo sobre lo que se deba basar el código de producción, es muy frágil y francamente prohibido en algunos contextos. Francamente, es mejor que encuentres un control de terceros que se adapte a tus necesidades, como www.infragistics.com

O si esa no es una opción, probablemente puedas crear tu propio control en la cantidad de tiempo que tendrás que asimilar para que funcione.

Solo me pregunto si alguien ha intentado hackear WPF DocumentViewer para hacerlo más útil. He pasado casi una semana intentando crear una API más poderosa para este control en función de los métodos que extraigo utilizando la reflexión.

Todo el mundo sabe cómo obtener el texto seleccionado del visor de documentos a través de la reflexión, pero mi tarea es más complicada. El texto seleccionado tiene propiedades End y Start que devuelven ITextPointers . También tengo una colección de GlyphRuns extraídas usando este código . Y ahora, finalmente, quiero saber qué GlyphRun contiene el inicio de la selección.

Así que quiero saber cómo convertir ITextPointers en GlyphRuns y viceversa. Entiendo que no tienen una relación 1: 1. Este control con API cerrada y la semana pasada en Reflector no me deja dormir bien. Espero que alguien haya intentado hacerlo antes o haya visto ejemplos de código y pueda guiarme a través de estas junglas.