TableCell
我对 WPF的拆分策略有疑问FlowDocument
Table
。
这是一个允许重现问题的简单代码:
主窗口.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;
}
}
这是结果:
正如您在第二页上看到的,右侧单元格的背景颜色丢失了。
有没有人遇到过这个问题?欢迎任何解决方案/解决方法!
编辑 1:所有属性都丢失了,因此在行/列上设置背景颜色不会解决我的问题(我主要有关于 TableCell 边框厚度的问题)
这是一个显示边框问题的屏幕:
编辑 2:查看可视化树很有启发性。分页过程似乎只为第二页的 Row 生成了一个 ParagraphVisual,从而解释了所有视觉效果的损失。没有视觉,因此没有背景/边框/等...解决方案可能是调整与FlowDocument