WPF 流文档:在后面的代码中添加时调整单元格高度
WPF Flow Document: adjust cells height when added in code behind
我有一个 FlowDocument,里面有一个 Table。当我直接在 XAML 中创建 table 并且当某些单元格内容被分成两行时,所有单元格会自动适应并且整行等高。
<TableRow Name="TestRow">
<TableCell BorderThickness="1,0,1,1" BorderBrush="LightGray">
<Paragraph>1</Paragraph>
</TableCell>
<TableCell BorderThickness="0,0,1,1" BorderBrush="LightGray">
<Paragraph>This is sentence which is divided into two lines</Paragraph></TableCell>
<TableCell BorderThickness="0,0,1,1" BorderBrush="LightGray">
<Paragraph>123</Paragraph></TableCell>
<TableCell></TableCell>
</TableRow>
但是当我想在后面的代码中动态创建 table 时,单元格具有不同的高度。
tableProducts.RowGroups[0].Rows.Add(new TableRow());
TableRow currentRow = tableProducts.RowGroups[0].Rows[1];
currentRow.Cells.Add(new TableCell(new Paragraph(new Run("1")) { BorderThickness = new Thickness(1, 0, 0, 1), BorderBrush = Brushes.LightGray }));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run("This is sentence which is divided into two lines")) { BorderThickness = new Thickness(1, 0, 1, 1), BorderBrush = Brushes.LightGray }));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run("123")) { BorderThickness = new Thickness(1, 0, 0, 1), BorderBrush = Brushes.LightGray }));
我找不到任何关于如何在隐藏代码中创建单元格时对齐单元格高度的解决方案。有什么办法可以解决这个问题吗?
将new TableCell(new Paragraph(...) { BorderThickness = ... })
更改为new TableCell(new Paragraph(...)) { BorderThickness = ... }
所以原因是 Paragraph
没有从 TableCell
中取出所有 space,它的边框在单元格内部。但是如果你尝试绘制 TableCell
的边框,一切都会正常。
我有一个 FlowDocument,里面有一个 Table。当我直接在 XAML 中创建 table 并且当某些单元格内容被分成两行时,所有单元格会自动适应并且整行等高。
<TableRow Name="TestRow">
<TableCell BorderThickness="1,0,1,1" BorderBrush="LightGray">
<Paragraph>1</Paragraph>
</TableCell>
<TableCell BorderThickness="0,0,1,1" BorderBrush="LightGray">
<Paragraph>This is sentence which is divided into two lines</Paragraph></TableCell>
<TableCell BorderThickness="0,0,1,1" BorderBrush="LightGray">
<Paragraph>123</Paragraph></TableCell>
<TableCell></TableCell>
</TableRow>
但是当我想在后面的代码中动态创建 table 时,单元格具有不同的高度。
tableProducts.RowGroups[0].Rows.Add(new TableRow());
TableRow currentRow = tableProducts.RowGroups[0].Rows[1];
currentRow.Cells.Add(new TableCell(new Paragraph(new Run("1")) { BorderThickness = new Thickness(1, 0, 0, 1), BorderBrush = Brushes.LightGray }));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run("This is sentence which is divided into two lines")) { BorderThickness = new Thickness(1, 0, 1, 1), BorderBrush = Brushes.LightGray }));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run("123")) { BorderThickness = new Thickness(1, 0, 0, 1), BorderBrush = Brushes.LightGray }));
我找不到任何关于如何在隐藏代码中创建单元格时对齐单元格高度的解决方案。有什么办法可以解决这个问题吗?
将new TableCell(new Paragraph(...) { BorderThickness = ... })
更改为new TableCell(new Paragraph(...)) { BorderThickness = ... }
所以原因是 Paragraph
没有从 TableCell
中取出所有 space,它的边框在单元格内部。但是如果你尝试绘制 TableCell
的边框,一切都会正常。