FlowDocument中的每个图像都在复制原始图像

时间:2019-02-04 18:06:00

标签: c# .net image flowdocument

我有一个对象,该对象包含子对象的集合,每个子对象都有一个图像(ImageSource)。

此收藏集在我的WPF用户界面中显示良好,每个图像都是唯一且正确的。

我正在尝试打印一张包含这些图像的表格,但是当我执行每张图像时,它们都与原始图像相同,尽管它们的大小可能会因尺寸而异。

在创建Image对象并将其添加到表中之后,我尝试过使用InvalidateVisual,但到目前为止还没有运气。

    public static void Print(MyObject obj)
    {
        System.Windows.Controls.PrintDialog Printdlg = new System.Windows.Controls.PrintDialog();
        if ((bool)Printdlg.ShowDialog().GetValueOrDefault())
        {
            FlowDocument doc = new FlowDocument {
                //Name = DocumentName,
               // MaxPageWidth = labelPrinter.MaxPageWidth,
                //MaxPageHeight = labelPrinter.MaxPageHeight
            };
            var table1 = new Table();
            doc.Blocks.Add(table1);
            table1.Columns.Add(new TableColumn());
            table1.Columns.Add(new TableColumn());
            table1.RowGroups.Add(new TableRowGroup());

            foreach(MyObjectChild item in obj.Items)
            {
                var row = new TableRow();
                System.Windows.Controls.Image image = new System.Windows.Controls.Image() {
                    Source = item.ImageSource,

                };                   
                row.Cells.Add(new TableCell(new BlockUIContainer(image)));
                row.Cells.Add(new TableCell(new Paragraph(new Run(item.Description))));
                table1.RowGroups[0].Rows.Add(row);
            }

            IDocumentPaginatorSource idpSource = doc;

            Printdlg.PrintDocument(idpSource.DocumentPaginator, "shipmentslip");
        }
    }

0 个答案:

没有答案