[英]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.