Bonjour,

Je cherche à imprimer un DataGrid scrollable qui contient un tableau. Ce tableau peut dépasser 1 page d'impression.

MonDataGrid :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
        <DataGrid IsSynchronizedWithCurrentItem="True" Grid.Column="0" Grid.Row="0" Background="{StaticResource LightPrimaryBackgroundBrush}" CanUserReorderColumns="False" CanUserResizeColumns="False" GridLinesVisibility="None" BorderThickness="0,0,0,0" RowHeaderWidth="0"
                        RowStyle="{StaticResource DataGridRowStyle}" AutoGenerateColumns="False" AlternationCount="2" VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling" FocusVisualStyle="{x:Null}"
                        ColumnHeaderStyle="{StaticResource DataGridColumnHeaderStyle}" SelectionUnit="FullRow" Padding="60,20" Focusable="True" Style="{StaticResource ListManagementStyle}"
                        RowHeight="23" IsReadOnly="True" CanUserSortColumns="True" x:Name="dataGrid"
                        ItemsSource="{Binding List.Presenter.Objects}">
            <DataGrid.Columns>
                <DataGridTemplateColumn CanUserSort="True" SortMemberPath="Customer.TypeOfBeneficiary" Width="30" Header="" CellStyle="{StaticResource TemplatedCellStyle}" CellTemplate="{StaticResource BeneficiaryCommandTemplate}" />
                <DataGridTemplateColumn CanUserSort="True" SortMemberPath="Customer.FullName" Width="*" Header="{x:Static Languages:ResCommon.Name}" CellStyle="{StaticResource TemplatedCellStyle}" CellTemplate="{StaticResource NameCommandTemplate}" />
                <DataGridTemplateColumn CanUserSort="True" SortMemberPath="Customer.SSNumber" Width="*" Header="{x:Static Languages:ResCommon.SSNumber}" CellStyle="{StaticResource TemplatedCellStyle}" CellTemplate="{StaticResource SSNCommandTemplate}" />
                <DataGridTemplateColumn CanUserSort="True" SortMemberPath="Customer.Addresses[0].City" Width="*" Header="{x:Static Languages:ResCommon.City}" CellTemplate="{StaticResource CityCommandTemplate}" CellStyle="{StaticResource TemplatedCellStyle}" />
                <DataGridTemplateColumn CanUserSort="True" SortMemberPath="Customer.BirthDate" Width="*" Header="{x:Static Languages:ResCommon.BirthDate}" CellTemplate="{StaticResource BirthDayCommandTemplate}" CellStyle="{StaticResource TemplatedCellStyle}" />
                <DataGridTemplateColumn CanUserSort="True" SortMemberPath="Customer.SSScheme.Code" Width="*" Header="{x:Static Languages:ResCommon.Scheme}" CellTemplate="{StaticResource SSCommandTemplate}" CellStyle="{StaticResource TemplatedCellStyle}" />
            </DataGrid.Columns>
            <DataGrid.InputBindings>
                <KeyBinding Key="Enter" Command="{Binding List.Presenter.GoToCustomerCommand}" CommandParameter="{Binding SelectedItem, ElementName=dataGrid}" />
            </DataGrid.InputBindings>
        </DataGrid>
J'ai tout d'abord essayer un simple PrintVisual sur la DataGrid, mais cela n'affiche pas la partie cachée par le scroll.
J'ai ensuite essayé de générer un FlowDocument et de l'imprimer en utilisant PrintDocument. Mais FlowDocument est trop limité et ne me permet pas de générer un tableau :/

Meri de me proposer une solution x)