2009-11-10 2 views
8

Я использую C# для создания FlowDocument и заполнения его данными в таблице.FlowDocument Force the PageBreak (BreakPageBefore)

Пример:

FlowDocument flowDoc = new FlowDocument(); 
Table table1 = new Table(); 
flowDoc.Blocks.Add(table1); 

table1.RowGroups.Add(new TableRowGroup()); 
table1.RowGroups[0].Rows.Add(new TableRow()); 
TableRow currentRow = table1.RowGroups[0].Rows[0]; 
table1.RowGroups[0].Rows.Add(new TableRow()); 

currentRow = table1.RowGroups[0].Rows[0]; 
currentRow.Cells.Add(new TableCell(new Paragraph(new Run("Report")))); 

Я хочу, чтобы иметь возможность принудительного разрыва страницы после каждого «раздела» данных. Я нашел BreakPageBefore, но не могу понять, как заставить разрыв страницы.

Любые примеры были бы фантастическими!

Спасибо.

ответ

14

Если я понимаю правильно, вы хотите сделать это:

Section section = new Section(); 
section.BreakPageBefore = true; 
section.Blocks.Add(table1); 
flowDoc.Blocks.Add(section); 

Если вы хотите, чтобы разбить в таблице я предлагаю, было бы лучше, чтобы сделать новую таблицу.

+0

Я не уверен, что это то, чем я был. Мне нужна простая вещь. TableData .. TableData .. TableData ... ETC ... Если это то, что я после этого, я пропустил его и не могли бы вы объяснить пожалуйста? Многие благодарят. –

+0

Похоже, вы хотите, чтобы начать новую таблицу для каждого раздела, как следует мартин, например, <Таблица PageBreakBefore = "истинный"> ...<Таблица PageBreakBefore = "истинный"> .... –

+0

Я думаю, что Ray, описанный в XAML, это лучший способ. Каждый тип блока имеет свойство PageBreakBefore, которое вы можете использовать, чтобы сказать FlowDocument, что он должен сломаться. Я думаю, что другого выхода нет. До сих пор я не нашел нечто вроде типа PageBreak, которое явно могло сделать разрыв страницы. – martin

Смежные вопросы