我對WPF FlowDocument
Table
上的TableCell
分割策略存在問題。TableCell在分頁符後拆分:餘數分割部分丟失原始單元格屬性
下面是一個簡單的代碼,允許重現該問題:
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;
}
}
這裏是結果:
正如你可以在第二頁看到,右側單元格背景顏色丟失。
有沒有人已經遇到過這個問題?任何解決方案/解決方法將受到歡迎!
編輯1:所有的性能損失,設置在該行的背景顏色/列將不解決我的問題(我有一個關於TableCell的邊框厚度主要問題)
下面是一個屏幕顯示問題有邊界:
編輯2:縱觀視覺樹是相當有益的。分頁過程似乎只爲第二頁上的行生成一個ParagraphVisual,從而解釋了所有視覺效果的損失。沒有視覺,因此沒有背景/邊框的/ etc ... 一個解決方案可能是調整相關的FlowDocument
SO上的相似問題:http://stackoverflow.com/questions/1707363/flowdocument-force-a-pagebreak-breakpagebefore – milivojeviCH
Thx代碼編輯。它展示了更多問題,以及如何在行/列上設置屬性無法解決問題。 – Sisyphe