wpf DocumentViewer – 通过GlyphRun获得ITextPointer,反之亦然

只是想知道是否有人试图入侵WPF DocumentViewer ,以使其更有用。 我已经花了差不多一个星期的时间来尝试为这个控件创build更强大的API,基于我使用reflection提取的方法。

每个人都知道如何通过reflection从文档查看器中获取选定的文本,但是我的任务更复杂。 所选文本具有返回ITextPointers EndStart属性。 此外,我有一个使用此代码提取GlyphRuns的集合。 现在最后我想知道哪个GlyphRun包含select开始。

所以我想知道如何将ITextPointers转换成GlyphRuns ,反之亦然。 我知道他们没有1:1的关系。 这封闭的API控制和上周花费在reflection器不让我睡好。 我希望也许有人试过,或者看过代码示例,并能够引导我通过这些丛林。

我会build议你放弃这种方法。 这样做很多私人reflection并不是你应该把生产代码作为基础的东西,在某些情况下它是非常脆弱和彻底的。 坦率地说,你最好find适合你需求的第三方控制,比如www.infragistics.com

或者,如果这不是一个选项,你可能会创build自己的控制,你必须沉浸到这个工作的时间量。