Infragistics WPF Reportの使用に関するチュートリアル(二)


前の記事では、Infragisticsレポートの定義方法について説明しましたが、実際の開発で問題が発生しました.
用紙のサイズを調整する、カスタム用紙に変更した後、レポートを生成した後、印刷ボタンをクリックすると、空の用紙が出てくる.しかし、レポートには内容があるのに.ただし、コード印刷をそのまま使用することは問題ない.そこで、この問題を解決するために、レポートのプレビューをキャンセルし、直接コード印刷を使用しました.
XamReportViewerのOnProcessingCompletedに次のような印刷コードを加えることで、ロード完了後の自動印刷を実現できる. 
 private void XamReportViewer_OnProcessingCompleted(object sender, ProcessingCompletedEventArgs e)
        {
          
            XamReportViewer repPrint = sender as XamReportViewer;
            Dispatcher.BeginInvoke(new Action(() =>
            {
                if (repPrint != null)
                {
                    LocalPrintServer localPrintServer = new LocalPrintServer();
                    PrintQueue defaultPrintQueue = localPrintServer.DefaultPrintQueue;
                    PageSettings currentPageSettings = repPrint.GetCurrentPageSettings();
                    PaperSettings paperSettings = new PaperSettings(currentPageSettings.PaperSize, currentPageSettings.PageOrientation);
                    repPrint.Print(paperSettings, defaultPrintQueue, Infragistics.Controls.Reports.PageRange.All);
                    this.Close();
                }
            }), System.Windows.Threading.DispatcherPriority.Background, null);  
        }