Таблица Rowspan выдает поток документов C#

Я пытаюсь распечатать таблицу, используя потоковый документ, со свойством row-span.

Я пытаюсь распечатать ниже вывода,

введите здесь описание изображения

но это дает мне это

введите здесь описание изображения

Я не понимаю, что не так с моим кодом, может быть, я что-то пропустил. Любая помощь приветствуется. Пожалуйста, смотрите код ниже,

Table tbl = new Table();
            for (int i = 0; i < 2; i++)
            {
                TableColumn tableCol = new TableColumn();
                tableCol.Width = new GridLength(150);
                tbl.Columns.Add(tableCol);
            }

            TableRow row = new TableRow();
            row.Background = Brushes.White;
            row.FontSize = PointsToPixels(TITLETEXTSIZE);
            row.FontFamily = new FontFamily(FONTFAMILY);


            row.Cells.Add(new TableCell(new Paragraph(new Run("cell1"))));
            row.Cells[0].BorderBrush = Brushes.Black;
            row.Cells[0].BorderThickness = new Thickness(0.0, 1.0, 1, 0.0);
            row.Cells[0].RowSpan = 2;

            row.Cells.Add(new TableCell(new Paragraph(new Run("cell2"))));
            row.Cells[1].BorderBrush = Brushes.Black;
            row.Cells[1].BorderThickness = new Thickness(0.0, 0.0, 0, 1.0);
            row.Cells[1].RowSpan = 1;

            var rowgroup = new TableRowGroup();
            rowgroup.Rows.Add(row);
            tbl.RowGroups.Add(rowgroup);


            row = new TableRow();
            row.Background = Brushes.White;
            row.FontSize = PointsToPixels(TITLETEXTSIZE);
            row.FontFamily = new FontFamily(FONTFAMILY);

            row.Cells.Add(new TableCell(new Paragraph(new Run("cell1"))));
            row.Cells[0].BorderBrush = Brushes.Black;
            row.Cells[0].BorderThickness = new Thickness(0.0, 1.0, 1, 1.0);
            row.Cells[0].RowSpan = 1;

            rowgroup = new TableRowGroup();
            rowgroup.Rows.Add(row);
            tbl.RowGroups.Add(rowgroup);

            tbl.BorderThickness = new Thickness(1, 1, 1, 0);
            tbl.BorderBrush = Brushes.Black;

person sp_m    schedule 04.12.2015    source источник


Ответы (1)


Это быстрая попытка в xaml, то же самое нужно сделать в C# при создании потокового документа.

Попробуйте добавить группу строк таблицы и добавить строку таблицы.

    <FlowDocument>
            <Table>
                <TableRowGroup>
                    <TableRow>
                        <TableCell Background="Green" RowSpan="2">
                            <Paragraph>Cell 1</Paragraph>
                        </TableCell>
                        <TableCell>
                            <Paragraph Background="Yellow">Cell 2</Paragraph>
                        </TableCell>
                    </TableRow>
                    <TableRow>
                        <TableCell Background="Red">
                            <Paragraph>Cell 1</Paragraph>
                        </TableCell>

                    </TableRow>
                </TableRowGroup>
            </Table>
    </FlowDocument>

введите здесь описание изображения

person Vivek    schedule 04.12.2015
comment
получил идею из вашего ответа. вместо создания новой TableRowGroup,rowgroup = new TableRowGroup(); я добавил новую строку в существующую rowgroup. - person sp_m; 04.12.2015