2010-06-22 71 views
7

在FlowDocumentPageViewer中顯示FlowDocument內容的腳註的最佳方法是什麼?在WPF中實現腳註FlowDocument

我的第一個想法是讓腳註的內容緊跟在FlowDocument內的腳註定位點之後,腳註內容的格式設置爲VerticalAnchor設置爲PageBottom。

這個效果很好,但是當頁面上有多個腳註時,腳註就會以相反的順序堆疊起來,即第一個腳註一直在底部,隨後的腳註被堆疊在頂部。

這種方法的另一個難點是不允許長腳註橫跨頁面,如圖所示。

一個更極端的方法是以相同的方式進行相同的操作 - 將常規文本的格式設置爲VerticalAnchor設置爲PageTop的堆疊圖形,並讓腳註在底部流動。但是,段落(通常比腳註更長)現在不會跨頁面。

我還可以嘗試其他方法嗎?

理想情況下,我想顯示腳註,因爲它們會出現在印刷品中(即與頁面底部相關),但我願意接受其他方法。

這是一個專門的學術內容的閱讀器應用程序,其中長期和頻繁的腳註是常態,應該是閱讀體驗的一部分。出於這個原因,我不想使用尾註,並且更喜歡每頁底部顯示的腳註。

回答

3

我花了一段時間看着這個,不得不同意,這似乎並沒有一個「很好很容易」的方式來做到這一點。

我嘗試從Floater和Figure類派生自己的包裝類,但它很快就變得非常複雜,因爲分頁是可怕的(至少對我來說)解決。這些問題是,圖允許自己錨定到XAML中的父級,而浮動具有所有你需要的功能 - 比如分頁 - 但它不能被錨定在任何位置...... Catch 22真的有點,即使在.NET 4.0中。

我發現兩個鏈接herehere可能有所幫助。第一個看起來可能乍看起來有點不相關,但看看代碼,你應該明白了)我玩弄了代碼和一般想法。它定義了DocumentPaginator周圍的包裝類,因此可以控制實際的分頁。

不管怎樣,希望這會有所幫助。