在WPF FlowDocument中实现脚注

在FlowDocumentPageViewer中显示FlowDocument内容的脚注的最佳方法是什么?

我的第一个想法是在脚注内容紧跟在FlowDocument内的脚注后面,脚注内容的格式设置为VerticalAnchor设置为PageBottom。

这很好,但是当页面上有多个脚注时,脚注就会以相反的顺序堆叠起来,即第一个脚注一直在底部,随后的脚注被堆叠在顶部。

这种方法的另一个困难是,不允许长脚注跨越页面,如图所示。

更为极端的做法是以相反的方式进行 - 将常规文本的格式设置为VerticalAnchor设置为PageTop的叠加图形,并让脚注在底部流动。 但是,段落(通常比脚注更长)现在不会跨页面。

我可以尝试什么其他方法?

理想情况下,我希望显示脚注,因为它们会以印刷形式出现(即与页面底部相关),但我愿意接受其他方法。

这是一个专门的学术内容的阅读器应用程序,其中长期和频繁的脚注是常态,应该成为阅读体验的一部分。 出于这个原因,我不想使用尾注,并且更喜欢每页底部显示的脚注。


我花了一段时间看这个,不得不同意,似乎没有一个“很好,很容易”的方式来做到这一点。

我尝试从Floater和Figure类中派生出我自己的包装类,但由于分页是可怕的(至少对我来说)是非常困难的,所以它非常快速地变得非常复杂。 这些问题是,图允许自己锚定到XAML中的父项,而浮动项具有所有你需要的很好的功能 - 比如分页 - 但它不能被锚定在任何位置......一个Catch 22的位,即使在.NET 4.0中。

我在这里和这里找到了两个链接,可能有所帮助。 第一个看起来可能乍看起来有点不相关,但看看代码,你应该明白了)我玩弄了代码和一般想法。 它定义了DocumentPaginator周围的包装类,因此可以控制实际的分页。

无论如何,希望这会有所帮助。

链接地址: http://www.djcxy.com/p/1433.html

上一篇: Implementing footnotes in a WPF FlowDocument

下一篇: Detect the specific iPhone/iPod touch model in Javascript