2011-12-03 70 views
0

我在ScrollViewer控件中顯示了幾百個記錄。當我打印ScrollViewer控件時,它只打印當前視圖(10條記錄)。我怎樣才能一次打印所有100個數據?在ScrollViewer中打印所有內容 - Silverlight

+1

檢查該溶液在印刷[鏈接](http://10rem.net/blog/2010/05/09/creating-a-simple-report-writer-in-silverlight-4) – Masoomian

回答

1

您可能想在Silverlight中使用PrintDocument類。 用法是一樣..

在XAML文件中創建列表,

<ScrollViewer Height="300" VerticalScrollBarVisibility="Auto"> 
      <ItemsControl x:Name="printSurface"> 
       <ItemsControl.ItemTemplate> 
        <DataTemplate> 
         <StackPanel Orientation="Horizontal" 
        Height="25"> 
          <TextBlock Width="100" 
        Text="{Binding Name}" /> 
          <TextBlock Width="75" 
        Text="{Binding Genre.Name}" /> 
          <TextBlock Width="50" 
        Text="{Binding Price, StringFormat=c}" /> 
         </StackPanel> 
        </DataTemplate> 
       </ItemsControl.ItemTemplate> 
      </ItemsControl> 
     </ScrollViewer> 

和代碼背後的模樣。

void printButton_Click(object sender, RoutedEventArgs e) 
{ 
    PrintDocument doc = new PrintDocument(); 
    doc.PrintPage += new EventHandler<PrintPageEventArgs>(doc_PrintPage); 
    doc.Print("Page title"); 
} 

void doc_PrintPage(object sender, PrintPageEventArgs e) 
{ 
    // Stretch to the size of the printed page 
    printSurface.Width = e.PrintableArea.Width; 
    printSurface.Height = e.PrintableArea.Height; 

    // Assign the XAML element to be printed 
    e.PageVisual = printSurface; 

    // Specify whether to call again for another page 
    e.HasMorePages = false; 
} 
+0

感謝這個很大的幫助。 – John