Solo me pregunta 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.wpf DocumentViewer: obtenga ITextPointer por GlyphRun y viceversa
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. Selected text tiene End
y Start
propiedades que devuelven ITextPointers
. También tengo una colección de GlyphRuns extraída usando this code. Y ahora, finalmente, quiero saber qué GlyphRun
contiene inicio de 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.
Como dijiste, no hay relación 1: 1. Además, GlyphRun solo hereda de un objeto. Sin embargo, contiene métodos notables. (No he probado ninguno de ellos.) Por ejemplo, GlyphRun.ComputeAlignmentBox() devuelve un Rect, que puede contener datos de ubicación. Creo que esa es la clave ... relacionando los datos de ubicación de GlyphRun y TextPointer. –
puede compartir un código con nosotros para que podamos probar algunos intentos también –
@HBMAAM, durante el año en que encontré una solución más o menos funcional, la voy a publicar aquí, pero llevará algo de tiempo. – Snowbear