7

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

我的第一个想法是让脚注的内容紧跟在 FlowDocument 中的脚注锚之后,脚注内容被格式化为一个 Figure,VerticalAnchor 设置为 PageBottom。

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

这种方法的另一个困难是不允许长脚注跨越页面,因为 Figure 不允许这样做。

更极端的方法是反向执行相同的操作 - 将常规文本格式化为堆叠图形,并将 VerticalAnchor 设置为 PageTop,并让脚注在底部流动。但是,段落(往往比脚注长)现在不会跨页。

我可以尝试哪些其他方法?

理想情况下,我想显示脚注,因为它们会出现在印刷品中(即在它们相关的页面底部),但我对其他方法持开放态度。

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

4

1 回答 1

3

我花了一段时间看这个并且不得不同意似乎没有一种“既好又简单”的方式来做到这一点。

我尝试从 Floater 和 Figure 类派生我自己的包装类,但它很快变得非常复杂,因为分页是可怕的(至少对我而言)难以解决。这些问题是 Figure 允许自己锚定到 XAML 中的父级,而 Floater 具有您需要的所有不错的功能 - 比如分页 - 但它不能锚定在任何地方......真的是 Catch 22 ,即使在 .NET 4.0 中。

我在这里这里找到了两个可能有帮助的链接。第一个乍一看似乎有点无关紧要,但看看代码,你应该明白了)我玩弄了代码,一般的想法是有效的。它围绕 DocumentPaginator 定义了一个包装类,因此允许您控制实际的分页。

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

于 2010-07-15T07:59:03.153 回答