Каждое изображение в FlowDocument дублирует исходное изображение - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть объект, у которого есть коллекция дочерних объектов, у каждого из которых есть изображение (ImageSource).

Эта коллекция прекрасно отображается в моем интерфейсе WPF, каждое изображение уникально и правильно.

Я пытаюсь напечатать таблицу этих изображений, однако, когда я делаю, каждое изображение совпадает с исходным, хотя они могут иметь размеры, соответствующие разным размерам.

Я пытался использовать 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");
        }
    }
...