MigraDoc: Как увеличить высоту строки при добавлении текста?

Я строю стол в MigraDoc. Я нашел способ поставить Table в Table.Row.Cell с помощью TextFrame, К сожалению Row.Cell не растет при добавлении новых записей в TextFrame, Таким образом, в определенный момент внутренняя таблица пересекается с рядами ниже.

Вот мой код:

this.Table = this.MigraDokument.AddSection().addTable();
Row row = this.Table.AddRow();
TextFrame Frame = row.Cells[0].AddTextFrame();

Table k_table = Frame.AddTable();
// adding rows with 
// Row row2 = k_table.AddRow();

Как я могу сказать Row.Cell расти с каждой записью, которую я помещаю во внутреннюю таблицу?

Редактировать: Моя проблема не была в том, что я не мог добавить вложенную таблицу, как в [ MigraDoc - встроенные / вложенные таблицы?, Хотя ответ по ссылке мне помог. Этот вопрос касается темы, что TextFrames может быть неподходящим способом для вложения таблиц в таблицы, потому что ячейка не масштабируется с вложенной таблицей.

1 ответ

Решение

Недокументированная функция из [ MigraDoc - встроенные / вложенные таблицы? был ответ: теперь код выглядит так и работает нормально.

this.Table = this.MigraDokument.AddSection().addTable();
Row row = this.Table.AddRow();
// Here I grab the cell that I want to populate later
Cell dataCell = row.Cells[0];

// Than I build the table with alle the necessary Information in it
Table k_table = new Table();
// adding columns and rows with 
k_table.AddColumn();
k_table.AddColumn();
Row row = k_table.AddRow();
// and populate with data
row.Cells[0].AddParagraph("Stuff 1");
row.Cells[1].AddParagraph("Stuff 2");

// The final trick is to add it in the end to the `Elements`
// property of the cell
dataCell.Elements.add(k_table);

Последний шаг приводит к тому, что Ячейка Таблицы выросла настолько, насколько позволяет вложенная таблица! Нет необходимости в слиянии с дополнительными строками внизу. Этот подход кажется более гибким, чем использование TextFrame, как я пытался в своем вопросе.

Другие вопросы по тегам