代码之家  ›  专栏  ›  技术社区  ›  Matthew Olenik

为WPF的FlowDocumentReader添加书签

  •  0
  • Matthew Olenik  · 技术社区  · 15 年前

    1. 每次打开窗口时保存页面 当应用程序重新加载时。

    2. 循环遍历中的所有元素 文件属性 FlowDocumentReader,正在查找 点击测试,然后使用反射 使用内部搜索功能 晚些时候。

    3. 序列化整个控件。

    4. 编写我自己的文档查看器控件。

    2号是一个花哨的黑客,可能会工作,但速度很慢,如果内部发生变化,就会完全崩溃。

    3号看起来是我的最佳选择,但它只允许我保存/恢复当前位置,而不允许设置任意书签。

    第四项工作太多了。这些控制完全是错误的 好极了

    还有别的办法吗?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Matthew Olenik    15 年前

    这似乎对页面视图很有效,但对滚动视图不起作用,这是可以的。

    reader FlowDocumentReader ,而文档是 FlowDocument 在它里面。

    设置书签:

    var paginator = ((IDocumentPaginatorSource)document).DocumentPaginator as DynamicDocumentPaginator;
    var position = paginator.GetPagePosition(paginator.GetPage(reader.PageNumber - 1)) as TextPointer;
    bookmark = position.Paragraph;
    

    还原书签:

    bookmark.BringIntoView();
    
    推荐文章