Oui. J'ai fait ça. Ce n'est pas très difficile.
Enveloppez votre cadre à l'intérieur d'un ScrollViewer qui a normalement son défilement horizontal et vertical désactivé
Lorsque vous êtes prêt à imprimer, activer le défilement vertical. Cela indiquera à l'image qu'il a un espace vertical infini, de sorte qu'il rendra tout le contenu. Puis appelez UpdateLayout() pour obtenir la mise à jour mise à jour.
Implémentez IDocumentPaginator pour renvoyer le même cadre pour chaque page, mais ajustez le clip et RenderTransform chaque fois pour afficher une partie différente du cadre réel.
Imprimer en utilisant votre commande IDocumentPaginator
La description ci-dessus suppose que vous voulez fixer la largeur du cadre à la largeur de la page et paginer verticalement. Ce serait approprié pour une page Web, mais pas pour une feuille de calcul. Pour le contenu de type tableur, vous devez définir ScrollViewer pour permettre le défilement dans les deux directions, donnant à l'image un espace infini dans chaque direction. Dans ce cas, IDocumentPaginator est identique sauf que RenderTransforms et clipping sont choisis pour itérer horizontalement et verticalement.
Cette technique fonctionne réellement pour tout contenu WPF, pas seulement un cadre.
Salut Ray, cela semble intéressant ... pouvez-vous nous donner quelques exemples de code sur la façon dont vous avez réalisé cela s'il vous plaît? Merci beaucoup! – Sid
J'aime aussi savoir comment cela se fait, Ray. Tout ** bon ** échantillons ou didacticiels étape par étape disponibles? – DeMama
Peut-être que cela vous aidera à commencer http://robertmcintosh.ca/2011/02/05/paginated-printing-of-wpf-visuals/ –