Q106. XamDataGrid の表示内容をそのまま印刷したい
A.コードビハインドで Infragistics.Windows.Reporting.Report クラスを使えば、簡単に印刷できます。列幅の変更・ソート・列の移動やフィルタリング等、ユーザーが任意に行った設定や、XamDataGrid に設定したテーマがそのまま印刷に反映されます。
// C# using Infragistics.Windows.Reporting; public partial class MainWindow : Window { private void Button_Click(Object sender, RoutedEventArgs e) { var reportObj = new Report(); var section = new EmbeddedVisualReportSection(XamDataGrid1); reportObj.Sections.Add(section); reportObj.Print(); } }
' Visual Basic Option Explicit On Option Strict On Imports Infragistics.Windows.Reporting Public Class MainWindow Private Sub Button_Click(sender As Object, e As RoutedEventArgs) Dim reportObj = New Report() Dim section = New EmbeddedVisualReportSection(XamDataGrid1) reportObj.Sections.Add(section) reportObj.Print() End Sub End Class
<Window x:Class="MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:igWPF="http://schemas.infragistics.com/xaml/wpf" Height="300" Width="545"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="8" /> <RowDefinition Height="20" /> <RowDefinition Height="8" /> <RowDefinition /> <RowDefinition Height="8" /> <RowDefinition Height="30" /> <RowDefinition Height="8" /> </Grid.RowDefinitions> <igWPF:XamDataGrid Grid.Row="3" BindToSampleData="True" x:Name="XamDataGrid1" /> <Button Grid.Row="5" Width="80" HorizontalAlignment="Right" Content="Print" Click="Button_Click"/> </Grid> </Window>
出力結果です。列の移動やソートがそのまま印刷に反映されます。画面に表示されてないすべてのデータも印刷されます。