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;
}
}
そして、ここに結果があります:
2 ページ目にあるように、右側のセルの背景色が失われています。
誰かがすでにこの問題に遭遇しましたか? 解決策/回避策は大歓迎です!
編集1:すべてのプロパティが失われるため、行/列に背景色を設定しても問題は解決しません(主にTableCell Border Thicknessesに関する問題があります)
境界線の問題を示す画面は次のとおりです。
編集 2:ビジュアル ツリーを見ると、かなり有益です。ページネーション プロセスでは、2 ページ目の Row に対して ParagraphVisual が 1 つしか生成されないように見えるため、すべての視覚効果が失われます。ビジュアルがないため、背景/境界線/その他はありません... 解決策は、に関連付けられているDocumentPaginatorを微調整することです。FlowDocument