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, как я пытался в своем вопросе.