wpf - 在 WPF 中打印 Datagrid 记录

标签 wpf datagrid

我只需要打印数据网格记录。我使用了一个这样的代码,但是这个也打印了 datagrid 滚动条。我只需要记录。

PrintDialog printDlg = new PrintDialog();
printDlg.PrintVisual(grid1, "Grid Printing.");

最佳答案

嘿,要在 WPF 中打印 DataGrid,您必须使用 <StackPanel>并使用给定的代码。

Xaml 代码是

 <StackPanel>
        <DataGrid AutoGenerateColumns="False" Margin="12,0,0,0" Name="dataGrid1"  HorizontalAlignment="Left"  VerticalAlignment="Top"  ItemsSource="{Binding}" AlternatingRowBackground="LightGoldenrodYellow" AlternationCount="1">
            <DataGrid.Columns>
                <DataGridTemplateColumn Header="Image" Width="SizeToCells" IsReadOnly="True">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Image Source="{Binding Path=Image}" Width="100" Height="50" />
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>


                <DataGridTextColumn Header="Make" Binding="{Binding Path=Make}"/>
                <DataGridTextColumn Header="Model" Binding="{Binding Path=Model}"/>
                <DataGridTextColumn Header="Price" Binding="{Binding Path=Price}"/>
                <DataGridTextColumn Header="Color" Binding="{Binding Path=Color}"/>
            </DataGrid.Columns>
        </DataGrid>
        <Button Content="Print" Click="OnDataGridPrinting"  Width="80" Height="30" />
    </StackPanel>

而 .CS 代码是
   private void OnDataGridPrinting(object sender, RoutedEventArgs e)
    {
        System.Windows.Controls.PrintDialog Printdlg = new System.Windows.Controls.PrintDialog();
        if ((bool)Printdlg.ShowDialog().GetValueOrDefault())
        {
            Size pageSize = new Size(Printdlg.PrintableAreaWidth, Printdlg.PrintableAreaHeight);
            // sizing of the element.
            dataGrid1.Measure(pageSize);
            dataGrid1.Arrange(new Rect(5, 5, pageSize.Width, pageSize.Height));
            Printdlg.PrintVisual(dataGrid1, Title);
        }
    }

希望对您有帮助

这是经过测试的代码。

关于wpf - 在 WPF 中打印 Datagrid 记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16537126/

相关文章:

wpf - 固定大小的 GridSplitter MinWidth

c# - WPF - 图像未正确显示的用户控件

c# - 您可以向没有数据源的数据网格添加数据吗?

c# - FindVisualChild引用问题

WPF DataGrid - 创建一个新的自定义列

wpf - 如果绑定(bind)源为空,如何为图像设置默认源?

c# - 如何平滑路径图的WPF线段

c# - 向 wpf 行为注入(inject)依赖的干净方法

c# - 如何将 Silverlight Toolkit DataGrid 单元格值绑定(bind)到 TextBlock 或 TextBox 文本属性

c# - 从另一个窗体刷新Form1 dataGrid c# winform