简体   繁体   中英

WPF DataGrid Printer

I have a pretty long and wide datagrid which I would like to send to the printer. But how do I print it when I want all rows and columns. It may fill multiple pages - that doesn't matter.

I am using WPF, C# and .Net 4.0

Here is my datagrid

<DataGrid Grid.Column="1"
              AutoGenerateColumns="False"
              ItemsSource="{Binding Tasks}"
              Name="dataGrid"
              LoadingRow="dataGrid_LoadingRow" 
              MouseMove="dataGrid_MouseMove">
        <DataGrid.Columns>
            <DataGridTemplateColumn Header="Task ID" CellTemplate="{StaticResource hyperlinkTemplate}"></DataGridTemplateColumn>
            <DataGridTextColumn IsReadOnly="True" Binding="{Binding Path=TaskName}" Header="Task name" />
            <DataGridTextColumn IsReadOnly="True" Binding="{Binding Path=TaskResponsible}" Header="Task responsible" />
            <DataGridTextColumn IsReadOnly="True" Binding="{Binding Path=TaskResponsibleDepartment}" Header="Task responsible department"></DataGridTextColumn>
            <DataGridTextColumn Binding="{Binding Path=Category, ValidatesOnExceptions=True}" Header="Category" EditingElementStyle="{StaticResource CellEditStyle}"/>
            <DataGridTextColumn Binding="{Binding Path=Status, ValidatesOnExceptions=True}" Header="Status" EditingElementStyle="{StaticResource CellEditStyle}"></DataGridTextColumn>
            <DataGridTextColumn Binding="{Binding Path=Priority, ValidatesOnExceptions=True}" Header="Priority" EditingElementStyle="{StaticResource CellEditStyle}" />
            <DataGridTextColumn IsReadOnly="True" Binding="{Binding Path=StartDate, StringFormat={}{0:yyyy MMMM dd}}" Header="Start date"></DataGridTextColumn>
            <DataGridTextColumn IsReadOnly="True" Binding="{Binding Path=ActualHours.TotalHours, StringFormat={}{0:0}}" Header="Actual hours" />
            <DataGridTextColumn IsReadOnly="True" Binding="{Binding Path=EstimatedHours.TotalHours, StringFormat={}{0:0}}" Header="Estimated hours" />
            <DataGridTextColumn IsReadOnly="True" Binding="{Binding Path=EstimatedDeploymentDate, StringFormat={}{0:yyyy MMMM dd}}" Header="Estimated deployment date" />
            <DataGridTextColumn IsReadOnly="True" Binding="{Binding Path=DesiredImplementationDate, StringFormat={}{0:yyyy MMMM dd}}" Header="Desired deployment date" />
            <DataGridTextColumn IsReadOnly="True" Binding="{Binding Path=APP.StartDate, StringFormat={}{0:yyyy MMMM dd}}" Header="APP - Start Date"></DataGridTextColumn>
            <DataGridTextColumn IsReadOnly="True" Binding="{Binding Path=APP.EstimatedHours}" Header="APP - Estimated hours"></DataGridTextColumn>
            <DataGridTextColumn IsReadOnly="True" Binding="{Binding Path=APP.ActualHours}" Header="APP - Actual hours"></DataGridTextColumn>
            <DataGridTextColumn IsReadOnly="True" Binding="{Binding Path=IN.StartDate, StringFormat={}{0:yyyy MMMM dd}}" Header="IN - Start Date"></DataGridTextColumn>
            <DataGridTextColumn IsReadOnly="True" Binding="{Binding Path=IN.EstimatedHours}" Header="IN - Estimated hours"></DataGridTextColumn>
            <DataGridTextColumn IsReadOnly="True" Binding="{Binding Path=IN.ActualHours}" Header="IN - Actual hours"></DataGridTextColumn>
            <DataGridTextColumn IsReadOnly="True" Binding="{Binding Path=SIS.StartDate, StringFormat={}{0:yyyy MMMM dd}}" Header="SIS - Start Date"></DataGridTextColumn>
            <DataGridTextColumn IsReadOnly="True" Binding="{Binding Path=SIS.EstimatedHours}" Header="SIS - Estimated hours"></DataGridTextColumn>
            <DataGridTextColumn IsReadOnly="True" Binding="{Binding Path=SIS.ActualHours}" Header="SIS - Actual hours"></DataGridTextColumn>
            <DataGridTextColumn IsReadOnly="True" Binding="{Binding Path=Tags}" Header="Tags"></DataGridTextColumn>
        </DataGrid.Columns>
    </DataGrid>

I am just answering this question for @icebat. This can be done with the flow document tool.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM