public static void Show(List <FrameworkElement> Pages, string documentName) { if (System.IO.File.Exists("PrintPreview.xps")) { System.IO.File.Delete("PrintPreview.xps"); } XpsDocument xpsDocument = new XpsDocument("PrintPreview.xps", System.IO.FileAccess.ReadWrite); XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(xpsDocument); FixedDocument fixedDocument = new FixedDocument(); PageContent pageContent; FixedPage fixedPage; for (int i = 0; i < Pages.Count; i++) { fixedPage = new FixedPage { Width = Pages[i].Width, Height = Pages[i].Height, Margin = new Thickness(-10) }; fixedPage.Children.Add(Pages[i]); pageContent = new PageContent(); ((IAddChild)pageContent).AddChild(fixedPage); fixedDocument.Pages.Add(pageContent); } writer.Write(fixedDocument); var printWindow = new PrintWindow(fixedDocument, documentName); printWindow.Show(); xpsDocument.Close(); }
public static void Show(FrameworkElement Page, string documentName, PageOrientation pageOrientation) { if (System.IO.File.Exists("PrintPreview.xps")) { System.IO.File.Delete("PrintPreview.xps"); } XpsDocument xpsDocument = new XpsDocument("PrintPreview.xps", System.IO.FileAccess.ReadWrite); XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(xpsDocument); FixedDocument fixedDocument = new FixedDocument(); PageContent pageContent; FixedPage fixedPage; fixedPage = new FixedPage { Width = Page.Width, Height = Page.Height }; fixedPage.Children.Add(Page); pageContent = new PageContent(); ((IAddChild)pageContent).AddChild(fixedPage); fixedDocument.Pages.Add(pageContent); writer.Write(fixedDocument); var printWindow = new PrintWindow(fixedDocument, documentName, pageOrientation); printWindow.ShowDialog(); xpsDocument.Close(); }