在FlowDocumentPageViewer中显示FlowDocument内容的脚注的最佳方法是什么?
我的第一个想法是让脚注的内容紧跟在FlowDocument中的脚注 anchor 之后,并且脚注内容的格式设置为“图”,其中VerticalAnchor设置为PageBottom。
这很好用,但是当页面上有多个脚注时,脚注将以相反的顺序堆叠,即第一个脚注一直在底部,随后的脚注则堆叠在其顶部。
这种方法的另一个困难是,不允许长脚注跨越页面,因为Figure不允许这样做。
一种更极端的方法是相反的操作-将常规文本格式化为将VerticalAnchor设置为PageTop的堆叠图形,然后将脚注放在底部。但是,段落(往往比脚注长)现在将不会跨越页面。
我还可以尝试其他哪些方法?
理想情况下,我希望以脚注形式显示(即与之相关的页面底部),但是我愿意接受其他方法。
这是针对专业学术内容的阅读器应用程序,其中长而频繁的脚注是常态,应成为阅读体验的一部分。因此,我不想使用尾注,而希望在每页底部显示脚注。
最佳答案
我花了一些时间看这件事,并且不得不同意,似乎没有一种“好而容易”的方式来做到这一点。
我尝试从Floater和Figure类派生我自己的包装器类,但是由于分页非常困难(至少对我而言),所以它变得非常令人费解。这些问题是,Figure可以将自身 anchor 定到XAML中的父级,而Floater具有您需要的所有不错的功能-例如分页-但无法 anchor 定在任何地方... Catch 22的确如此,即使在.NET 4.0中也是如此。
我发现两个链接here和here可能会有所帮助。乍一看,第一个似乎无关紧要,但是看一下代码,您应该就会明白。)我研究了代码,并且总体思路可行。它围绕DocumentPaginator定义了一个包装器类,因此使您可以控制实际的分页。
希望无论如何会有所帮助。
关于.net - 在WPF FlowDocument中实现脚注,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3093814/