分页后分割的TableCell:余数分割部分丢失原始单元格属性

Sis*_*phe 11 .net c# wpf flowdocument

TableCell关于WPF 的分裂策略,我有一个问题FlowDocument Table.

这是一个允许重现问题的简单代码:

MainWindow.xaml.cs

/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        var table = new Table() { BorderThickness = new Thickness(1), BorderBrush = Brushes.Black, CellSpacing = 0 };
        var rowGroup = new TableRowGroup();
        var tableRow = new TableRow();
        var cell1 = new TableCell() { Background = Brushes.Red, BorderThickness = new Thickness(0, 0, 1, 0), BorderBrush = Brushes.Black };
        var cell2 = new TableCell() { Background = Brushes.Red };

        cell1.Blocks.Add(new Paragraph(new Run("Cell 1 ******************************************************************************")));
        cell2.Blocks.Add(new Paragraph(new Run("Cell 2")));
        tableRow.Cells.Add(cell1);
        tableRow.Cells.Add(cell2);
        rowGroup.Rows.Add(tableRow);
        table.RowGroups.Add(rowGroup);

        var flowDocument = new FlowDocument();
        flowDocument.Blocks.Add(table);

        Content = flowDocument;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是结果:

TableCell Split

正如您在第二页上看到的那样,右侧单元格背景颜色将丢失.

有没有人遇到过这个问题?任何解决方案/解决方案都将受到欢迎!

编辑1:所有属性都丢失,因此在行/列上设置背景颜色不会解决我的问题(我主要关于TableCell边框厚度的问题)

这是一个显示边框问题的屏幕:

在此输入图像描述

编辑2:查看Visual Tree非常有启发性.分页过程似乎只在第二页上为Row生成一个ParagraphVisual,从而解释了所有视觉效果的丢失.没有Visual,因此没有背景/边框/等等...解决方案可能是调整与之关联的DocumentPaginatorFlowDocument

在此输入图像描述

Sis*_*phe 2

可悲的是,我无法找到解决方案。这似乎是 WPF FlowDocument 固有的错误,并且在分页过程中找到入口点并不容易。

我的主要目标是让表格在文档中的页面之间正确拆分,因此我最终决定允许拆分表格,但不允许拆分单元格。

这很容易做到,我只需将单元格内容包装在BlockUIContainer这样的中:

cell1.Blocks.Add(new BlockUIContainer() { Child = new TextBlock () { Text = "Cell 1 ******************************************************************************", TextWrapping = TextWrapping.Wrap}});
Run Code Online (Sandbox Code Playgroud)

这使我可以避免拆分表中缺少边框,但单元格无法再拆分。

这并不令人满意,但这是我能够实现的最好成绩。