簡體   English   中英

WPF打印XAML控件

[英]WPF Print XAML Control

我試圖將打印功能添加到WPF項目。 用戶可以在運行時在文本框或其他控件中添加和刪除文本,因此xaml控件的大小不固定。 如果他單擊“打印”按鈕,我想弄清楚控件的大小並打印(如果需要的話是多頁)文檔。 到目前為止,這是我的代碼

public void Print(FrameworkElement element)
    {

        System.Windows.Controls.PrintDialog printDlg = new System.Windows.Controls.PrintDialog();
        if (printDlg.ShowDialog() == true) {

            double height = element.ActualHeight;
            double width = element.ActualWidth;
            Size pageSize = new Size(printDlg.PrintableAreaWidth, printDlg.PrintableAreaHeight);
            //element.Measure(pageSize);
            //element.Arrange(new Rect(5, 5, pageSize.Width, pageSize.Height));

            printDlg.PrintVisual(element, "this is a test");
        }

    }

我的想法是檢查控件的實際高度和寬度。 如果其中之一大於頁面尺寸,我知道我必須打印多頁。 我不太確定該怎么做,但我認為我將不得不使用XPSDocument類。 有人可以幫我嗎,我不知道如何將我的文檔分成多頁並打印出來,也有人可以告訴我如何從我的xaml代碼創建FlowDocument。

提前致謝!

默認情況下,您無法在多個頁面上打印控件,但可以手動執行。 這是偉大的文章,它解決了您的問題: http : //www.codeproject.com/Articles/164033/WPF-Visual-Print-Component

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM