none
WPF列印時如何設定FixedPage的留邊 RRS feed

  • 問題

  • 用程式的方式建立一個Grid,Grid會超過一頁A4,FixedPage有設定margin,但是列印時只有第一頁有效,可是第二頁後面,內容都變成空白。
    請問一下我要如何設定FixedPage的列印的留邊,讓紙張周圍的邊界不要列印內容?

                PrintDialog pd = new System.Windows.Controls.PrintDialog(); 
    
                if (pd.ShowDialog() == false) 
                { 
                    return; 
                } 
    
                var pageSize = new Size(pd.PrintableAreaWidth, pd.PrintableAreaHeight); 
    
    
                var document = new FixedDocument(); 
                document.DocumentPaginator.PageSize = pageSize; 
                    for (int nPage = 0; nPage < MaxPage; nPage++) 
                    { 
                        Grid tempGrid = LoadControlMotherInit(); 
    
                        tempGrid.Width = GridWidth; 
                        tempGrid.Height = GridActualHeight; 
    
                        Point leftTop = new Point(); 
    
                        leftTop.X = 10; 
                        leftTop.Y = -nPage * pageSize.Height; 
    
                        // Create FixedPage 
                        var fixedPage = new FixedPage(); 
                        fixedPage.Width = pageSize.Width; 
                        fixedPage.Height = pageSize.Height; 
    
                        fixedPage.Margin = new Thickness(0, 0, 0, 96); 
    
                        //FixedPage.SetLeft((UIElement)tempGrid, 0); 
                        //FixedPage.SetTop((UIElement)tempGrid, 0); 
                        
                        // Add visual, measure/arrange page. 
                        fixedPage.Children.Add((UIElement)tempGrid); 
                        fixedPage.Measure(pageSize); 
                        fixedPage.Arrange(new Rect(leftTop, pageSize)); 
                        fixedPage.UpdateLayout(); 
                        
                        // Add page to document 
                        var pageContent = new PageContent(); 
                        ((System.Windows.Markup.IAddChild)pageContent).AddChild(fixedPage); 
                        document.Pages.Add(pageContent); 
                    } 
                    
                    pd.PrintDocument(document.DocumentPaginator, "My Document"); 
    

    2016年2月25日 上午 04:47