Sì. L'ho fatto. Non è molto difficile.
avvolgere la cornice all'interno di uno ScrollViewer che normalmente ha il suo scorrimento orizzontale e verticale disattivato
Quando si è pronti per la stampa, attivare lo scorrimento verticale. Questo farà sì che al Frame venga detto che ha uno spazio verticale infinito, quindi renderà tutto il contenuto. Quindi chiama UpdateLayout() per aggiornare il layout.
Implementare IDocumentPaginator per restituire lo stesso frame per ogni pagina, ma regolare la clip e RenderTransform ogni volta per mostrare una parte diversa del frame corrente.
Stampa utilizzando la vostra abitudine IDocumentPaginator
La descrizione di cui sopra si presuppone che si desidera correggere la larghezza del telaio alla larghezza della pagina e impaginare in verticale. Questo sarebbe appropriato per una pagina web ma non per un foglio di calcolo. Per i contenuti simili a un foglio di calcolo, devi impostare ScrollViewer per consentire lo scorrimento in entrambe le direzioni, offrendo lo spazio infinito dell'inquadratura in ogni direzione. In questo caso, IDocumentPaginator è lo stesso tranne che RenderTransforms e clipping sono scelti per iterare sia orizzontalmente che verticalmente.
Questa tecnica funziona effettivamente per qualsiasi contenuto WPF, non solo per Frame.
fonte
2010-02-11 05:58:09
Hi Ray, questo sembra interessante ... puoi darci alcuni esempi di codice su come hai ottenuto questo per favore? Grazie molto! – Sid
Mi piace anche sapere come si fa, Ray. Sono disponibili ** buoni ** campioni o tutorial passo-passo? – DeMama
Forse questo ti aiuterà a iniziare http://robertmcintosh.ca/2011/02/05/paginated-printing-of-wpf-visuals/ –