在WPF FlowDocument中实现脚注

kmbjn2e3  于 2023-01-21  发布在  其他
关注(0)|答案(1)|浏览(149)

在FlowDocumentPageViewer中显示FlowDocument内容脚注的最佳方法是什么?
我的第一个想法是让脚注内容紧跟在FlowDocument中的脚注锚之后,将脚注内容格式化为Figure,并将VerticalAnchor设置为PageBottom。
这很有效,但是当一页上有多个脚注时,脚注会以相反的顺序堆叠,即第一个脚注一直在底部,后续脚注堆叠在它的顶部。
这种方法的另一个困难是不允许长脚注跨越页面,因为Figure不允许这样做。
一个更极端的方法是反过来做同样的事情--将常规文本格式化为堆叠图形,将VerticalAnchor设置为PageTop,并让脚注在底部流动。但是,段落(通常比脚注长)现在不会跨越页面。
我还可以尝试哪些其他方法?
理想情况下,我希望显示脚注,因为他们将出现在打印(即在底部的网页,他们是相关的),但我是开放的其他方法。
这是一款针对专业学术内容的阅读器应用程序,在这些内容中,冗长频繁的脚注是常态,应该成为阅读体验的一部分。因此,我不想使用尾注,而更喜欢在每页底部显示脚注。

dojqjjoe

dojqjjoe1#

我花了一段时间来研究这个问题,不得不同意似乎没有一个“好的和容易的”方法来做这件事。
我试着从Floater和Figure类派生自己的 Package 器类,但很快就变得非常复杂,因为分页太可怕了问题在于,Figure允许自己在XAML中锚定到父对象,而Floater具有您需要的所有好功能--比如分页--但它不能锚定到任何地方......真的有点像第二十二条军规,即使是在.NET 4.0中。
我找到了两个链接herehere,第一个链接乍一看似乎有点不相关,但看看代码,你应该明白了)我反复研究了代码,基本思想是可行的。它定义了一个围绕DocumentPaginator的 Package 器类,因此允许你控制实际的分页。
希望这能帮上忙。

相关问题