WPF FlowDocument Содержание - PullRequest
2 голосов
/ 02 ноября 2010

У меня есть приложение, которое генерирует довольно длинный FlowDocument. Он использует «пользовательский» paginator, чтобы обернуть верхний и нижний колонтитулы вокруг каждой страницы при печати. Кроме того, каждая страница содержит один или несколько «подзаголовков».

Я бы хотел, чтобы он также автоматически создавал оглавление для этого документа, показывая, какие подзаголовки появились на каждой странице.

Вот проблема. Я не знаю, какие подзаголовки появляются на каждой странице, пока я не распечатаю документ, и он не проходит через пагинацию, которая разбивает документ на страницы. Но к тому времени все было сведено к Visuals и, похоже, больше не содержит никакой соответствующей информации о реальных объектах, которые я помещаю в документ (поэтому я не могу прочитать какие-либо свойства Tag или даже содержимое).

У кого-нибудь есть какие-нибудь умные способы, которыми я мог бы определить во время / перед печатью, какие элементы появляются на каждой странице?

1 Ответ

0 голосов
/ 28 июля 2011

Способ, которым я это сделал, - создать FixedDocument вместо FlowDocument с моим вспомогательным классом .Оставьте место для оглавления, или вы можете заново передать все это потом.Когда я добавляю каждый элемент, я знаю, на какой странице он находится, так что впоследствии я могу создать оглавление.Фиксированные документы очень легко генерировать и печатать.

...