FlowDocument BreakPageBefore属性不在Table Block上工作

时间:2015-03-03 16:33:59

标签: c# wpf flowdocument

所以我通过使用代码动态创建FlowDocument(基于How to build a table programatically上的这篇MSDN文章)。

FlowDocument包含许多块,包括段落和表格。生成的表具有不同的大小,一些表嵌套在其他块中。如果表格不适合页面上的剩余空间,我想在下一页的开头开始该表格。

我这样做是通过在创建特定块时记录当前页面,然后当表格完成时,如果我在新页面上,我将 BreakPageBefore 属性设置为true。像这样:

foreach (var item in Data)
{
    Table table = new Table();
    flowDoc.Blocks.Add(table);
    paginatorSource.DocumentPaginator.ComputePageCount();
    pagecount = paginatorSource.DocumentPaginator.PageCount;

    //do some work populating the table details...
    TableColumn t = new TableColumn(); //etc...

    paginatorSource.DocumentPaginator.ComputePageCount();
    int newPagecount = paginatorSource.DocumentPaginator.PageCount;

    if (newPagecount != pagecount)
    { 
        //The table has spanned a new page so set the page break!
        table.BreakPageBefore = true;
    }
}

但这似乎不起作用。但是,如果我将表包装在 Section 中并在该部分上设置 BreakPageBefore ,则它可以正常工作。另外,如果我在表之前有一个段落,我可以在段落上设置 BreakPageBefore ,这也可以正常工作。

我尝试创建一个简单的FlowDocument,它只有一堆重复的表,并没有任何区别,我仍然需要将它们包装在一个Section中。

它们都继承自 Block 那么为什么它不会直接在 Table 上运行?

0 个答案:

没有答案