gpt4 book ai didi

c# - 如何在 WPF 中打印表格

转载 作者:太空宇宙 更新时间:2023-11-03 15:57:28 24 4
gpt4 key购买 nike

我在 WPF 中编程。我构建了一个包含大量数据的表 (DataGrid) (6 列和 100 行),我想知道如何打印它?

我为此做了很多搜索,但我还没有找到解决这个问题的方法。当我打印时,它只为我打印一页(表格的大约 30 行),仅此而已。

下面是适用于 DataGrid 表的代码:

        System.Windows.Controls.PrintDialog Printdlg = new System.Windows.Controls.PrintDialog();

if ((bool)Printdlg.ShowDialog().GetValueOrDefault())
{
System.Windows.Size pageSize = new System.Windows.Size(Printdlg.PrintableAreaWidth, Printdlg.PrintableAreaHeight);
// sizing of the element.
MyDataGrid.Measure(pageSize);
MyDataGrid.Arrange(new Rect(5, 5, pageSize.Width, pageSize.Height));
Printdlg.PrintVisual(MyDataGrid, Title);
}

有人能给我写一段如何正确打印 DataGrid 表格的简单代码吗?谢谢!!

最佳答案

对于 WPF 中的 Print DataGrid,您必须获取并使用给定的代码。

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>

代码

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);
}
}

这是经过测试的代码。

关于c# - 如何在 WPF 中打印表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22961011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com