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)
这是结果:

正如您在第二页上看到的那样,右侧单元格背景颜色将丢失.
有没有人遇到过这个问题?任何解决方案/解决方案都将受到欢迎!
编辑1:所有属性都丢失,因此在行/列上设置背景颜色不会解决我的问题(我主要关于TableCell边框厚度的问题)
这是一个显示边框问题的屏幕:

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

可悲的是,我无法找到解决方案。这似乎是 WPF FlowDocument 固有的错误,并且在分页过程中找到入口点并不容易。
我的主要目标是让表格在文档中的页面之间正确拆分,因此我最终决定允许拆分表格,但不允许拆分单元格。
这很容易做到,我只需将单元格内容包装在BlockUIContainer这样的中:
cell1.Blocks.Add(new BlockUIContainer() { Child = new TextBlock () { Text = "Cell 1 ******************************************************************************", TextWrapping = TextWrapping.Wrap}});
Run Code Online (Sandbox Code Playgroud)
这使我可以避免拆分表中缺少边框,但单元格无法再拆分。
这并不令人满意,但这是我能够实现的最好成绩。
| 归档时间: |
|
| 查看次数: |
1355 次 |
| 最近记录: |