WPF-是否可以将DataGrid导出为PDF?

时间:2019-04-11 09:10:38

标签: c# wpf pdf pdf-generation

我有一个带有自定义外观的以下DataGrid: enter image description here

是否可以通过保留所有自定义外观的方式将此DataGrid导出为pdf文件?

如果这可以帮助某人,这就是我的datagrid的xaml(代码很杂乱,可能不是最佳的,但这不是重点,现在我只需要pdf问题的帮助),另外还要注意一点,我正在从C#中添加列:

        <DataGrid Name="dgMain" AlternationCount="2" AlternatingRowBackground="#f2f2f2" IsReadOnly="True" GridLinesVisibility="None" VerticalGridLinesBrush="White">
        <DataGrid.ColumnHeaderStyle>
            <Style TargetType="DataGridColumnHeader">
                <Setter Property="Background" Value="LightGray"/>
                <Setter Property="FontSize" Value="18"/>
                <Setter Property="Foreground" Value="White"/>
                <Setter Property="HorizontalAlignment" Value="Stretch"/>
                <Setter Property="HorizontalContentAlignment" Value="Center"/>
                <Setter Property="VerticalAlignment" Value="Center"/>
                <Setter Property="Height" Value="50"/>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="DataGridColumnHeader">
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="Auto" />
                                </Grid.ColumnDefinitions>
                                <Border BorderThickness="1" Padding="3,0,3,0" Height="{TemplateBinding Height}" Grid.Column="0">
                                    <Border.Background>
                                        <SolidColorBrush Color="#c7d9f1"/>
                                    </Border.Background>
                                    <ContentPresenter VerticalAlignment="{TemplateBinding VerticalAlignment}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/>
                                </Border>

                                <Thumb x:Name="PART_RightHeaderGripper" Grid.Column="1" HorizontalAlignment="Right" Width="2" BorderThickness="1" Cursor="SizeWE" BorderBrush="{Binding VerticalGridLinesBrush, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}}"/>
                            </Grid>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </DataGrid.ColumnHeaderStyle>
        <DataGrid.CellStyle>
            <Style TargetType="DataGridCell">
                <Setter Property="Padding" Value="10" />
                <Setter Property="FontSize" Value="16" />
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type DataGridCell}">
                            <Border Padding="{TemplateBinding Padding}">
                                <ContentPresenter></ContentPresenter>
                            </Border>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </DataGrid.CellStyle>
        <DataGrid.Columns>
        </DataGrid.Columns>
    </DataGrid>

0 个答案:

没有答案