在WPF FlowDocument中实现脚注

7
什么是在FlowDocumentPageViewer中显示注脚的最佳方法?
我的第一个想法是让注脚内容紧随FlowDocument中的注脚锚点之后,将注脚内容格式化为垂直锚定设置为PageBottom的图像。
这个方法很好用,但当一页上有多个注脚时,注脚会按相反的顺序堆叠,即第一个注脚会完全位于底部,随后的注脚会叠放在它的顶部。
这种方法的另一个困难之处在于长注脚将不被允许跨页,因为Figure不允许这样做。
更极端的方法是以相反的方式进行 - 将常规文本格式化为垂直锚定设置为PageTop的堆叠图像,并让注脚流动在底部。但是,段落(倾向于比注脚更长)现在将不能跨页。
我可以尝试哪些其他方法?
理想情况下,我希望显示注脚与它们在印刷品中出现的方式相同(即在它们相关的页面底部),但我也可以接受其他方法。
这是为专业学术内容的阅读器应用程序,其中长而频繁的注脚是常态,并且应该成为阅读体验的一部分。因此,我不想使用尾注,并且更喜欢在每个页面底部显示注脚。
1个回答

3

经过一番探索,我不得不同意这方面似乎没有“简单易行”的方法。

我试图从Floater和Figure类中派生出自己的包装器类,但是很快就变得非常复杂,因为对于我来说分页是可怕的难以解决。这些问题在于Figure允许将自己锚定到XAML中的父级,而Floater具有所有你需要的好功能 - 比如分页 - 但它不能锚定在任何地方... 真是一个进退两难的局面,即使在.NET 4.0下也是如此。

我找到了两个链接这里这里可能会有所帮助。第一个链接可能乍一看似乎有点无关紧要,但是看一下代码,你应该就能明白了。我尝试修改了一下代码,总体思路是可行的。它定义了一个DocumentPaginator的包装类,因此允许你控制实际的分页。

希望这能有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接