У меня есть проблема относительно стратегии разделения 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;
}
}
И вот результат:
Как вы можете видеть на второй странице, цвет фона правой ячейки теряется.
Кто-нибудь уже сталкивался с этой проблемой? Любое решение/обходное решение будет приветствоваться!
Изменить 1: Все свойства потеряны, поэтому установка цвета фона в строке/столбце не решит мою проблему (у меня есть главным образом проблемы, касающиеся толщины границы TableCell)
Вот экран, показывающий проблему с границами:
Редактировать 2: Взгляд на визуальное дерево довольно поучителен. Процесс разбиения на страницы, по-видимому, генерирует только один ParagraphVisual для строки на второй странице, что объясняет потерю всех визуальных эффектов. Существует нет Visual, и, следовательно, нет фона/границ/etc...
Решением может быть настройка DocumentPaginator, связанная с FlowDocument