2016-07-06 53 views
0

我有一个FlowDocument里面有一个表。当我直接在XAML中创建表格并且某些单元格内容分成两行时,所有单元格都会自动适合,并且整行的高度相同。WPF流文档:在代码中添加后调整单元格高度

<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> 

enter image description here

但是,当我想在代码中动态创建表的后面,该细胞具有不同的高度。

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 })); 

enter image description here

我无法找到如何它们在代码中创建落后时对齐单元格高度的任何解决方案。有什么办法可以解决这个问题吗?

回答

0

变化new TableCell(new Paragraph(...) { BorderThickness = ... })new TableCell(new Paragraph(...)) { BorderThickness = ... }

所以原因是Paragraph采取不TableCell所有的空间,其边界是细胞内。但如果你试图画TableCell的边框,一切都会正常工作。

+0

谢谢cdmnk!解决方案非常简单。 –

相关问题