首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >书签WPF的FlowDocumentReader

书签WPF的FlowDocumentReader
EN

Stack Overflow用户
提问于 2010-02-02 00:22:39
回答 1查看 1.5K关注 0票数 0

我正在尝试保存和恢复文档在FlowDocumentReader中的位置,以创建书签功能。在可公开访问的版本中,似乎没有任何搜索或搜索功能构建,因此我有以下选项:

  1. 使用FlowDocumentPageViewer代替,每次窗口被调整大小时保存页面,并在应用程序重新加载后立即恢复它。
  2. 循环遍历FlowDocumentReader文档属性中的所有元素,查找第一个通过屏幕上点击测试的元素,然后使用反射来使用内部搜索功能将该文本带回到稍后的整个控件的视图中。
  3. 编写我自己的文档查看器控件。

第一名很烦人,因为我不得不放弃FlowDocumentReader的两页和滚动浏览选项。它还意味着在用户有机会调整窗口大小之前寻求保存的页面。这是脆弱的,如果用户说,在会话之间切换分辨率,这很可能会中断。

第二名是一次花哨的黑客攻击,可能会奏效,但如果内部因素发生变化,那就慢慢来,彻底崩溃。

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

第四条就是工作太多了。这些控件太棒了,我只需要一个功能.

还有别的办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-02-02 07:38:11

对于页面视图来说,这似乎很好,但对于滚动视图则不适用,这是可以的。

readerFlowDocumentReader类型的,文档是其中的FlowDocument

设置书签:

代码语言:javascript
复制
var paginator = ((IDocumentPaginatorSource)document).DocumentPaginator as DynamicDocumentPaginator;
var position = paginator.GetPagePosition(paginator.GetPage(reader.PageNumber - 1)) as TextPointer;
bookmark = position.Paragraph;

还原书签:

代码语言:javascript
复制
bookmark.BringIntoView();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2181071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档