在FlowDocumentPageViewer中显示FlowDocument内容脚注的最佳方法是什么?
我的第一个想法是让脚注内容紧跟在FlowDocument中的脚注锚之后,脚注内容格式化为一个图,VerticalAnchor设置为PageBottom。
这很好用,但是当页面上有多个脚注时,脚注会以相反的顺序堆叠,即第一个脚注一直在底部,后面的脚注堆叠在它上面。
这种方法的另一个困难是不允许长脚注跨越页面,因为图不允许这样做。
更为极端的方法是反向执行相同操作 - 将常规文本格式化为VerticalAnchor设置为PageTop的堆叠数字,并让脚注在底部流动。但是,段落(往往比脚注长)现在不会跨页。
我可以尝试其他哪些方法?
理想情况下,我希望显示脚注,因为它们会出现在打印中(即与页面底部相关),但我对其他方法持开放态度。
这是针对专业学术内容的读者应用程序,其中长而频繁的脚注是常态,应该是阅读体验的一部分。出于这个原因,我不想使用尾注,而是更喜欢每页底部显示的脚注。
答案 0 :(得分:3)
我花了一些时间看这个,并且必须同意这似乎没有“好的和简单的”方式。
我尝试从Floater和Figure类派生我自己的包装类,但它很快就会变得非常复杂,因为分页是可怕的(至少对我而言)。这些问题是图允许自己锚定到XAML中的父级,而Floater具有你需要的所有好功能 - 比如分页 - 但它不能固定在任何地方...... Catch 22的位置确实如此,即使在.NET 4.0中也是如此。
我找到了两个可能有用的链接here和here。第一眼可能看起来有点无关紧要,但看看代码,你应该得到的想法)我玩了代码和一般的想法工作。它定义了DocumentPaginator周围的包装类,因此允许您控制实际的分页。
希望无论如何都有所帮助。