2016-02-12 53 views
1

我正在維護一個從silverlight打印支票的舊應用程序。 檢查位於網格中,用戶選擇它們並按下打印按鈕。 我確認在網格中選中的所有檢查都發送到打印機,但我注意到實際打印輸出中有時缺少一些檢查。即使出現錯誤,我也檢查EndPrint,並且沒有。 我怎樣才能確保所有的數據實際打印?在Silverlight中打印。某些頁面丟失

這裏是PrintPage事件

StackPanel stackPanel = new StackPanel(); 
CheckInfo check = selectedChecks[printItemIndex]; 
PrintCheck printCheck = BuildPrintCheck(check); 
stackPanel.Children.Add(printCheck); 
stackPanel.Measure(new Size(args.PrintableArea.Width, double.PositiveInfinity)); 
if (++printItemIndex < selectedChecks.Count) 
     args.HasMorePages = true; 

args.PageVisual = stackPanel; 
+0

你是什麼意思「的所有檢查被髮送到打印機」,但「在實際打印出來失蹤」。它是一個還是另一個? –

+0

我調試代碼並確認數據正在發送到打印機,但是當我查看物理頁面時,有些頁面丟失。 – user3112242

回答

0

確定事實證明SilverLight5(運行時)在打印圖像時遇到問題。運行SilverLight4的客戶端上不存在該問題。 這是我如何固定它在我的代碼

private void PlaceImages() 
     { 

      var logoStreamResourceInfo = Application.GetResourceStream(new Uri("myApp;/Images/logo.png", UriKind.Relative)); 
      var logo = new BitmapImage(); 
      logo.SetSource(logoStreamResourceInfo.Stream); 
      var logoImageBrush = new ImageBrush(); 
      logoImageBrush.ImageSource = logo; 
      upperLogo.Fill = logoImageBrush; 
      lowerLogo.Fill = logoImageBrush; 

     }