2016-07-06 14 views
0
eingefügt wird

Ich habe ein FlowDocument mit einer Tabelle im Inneren. Wenn ich die Tabelle direkt in XAML erstelle und wenn ein Zellinhalt in zwei Zeilen aufgeteilt wird, werden alle Zellen automatisch angepasst und die gesamte Zeile hat die gleiche Höhe.WPF-Flow-Dokument: Zellenhöhe anpassen, wenn Code hinter

<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

Aber wenn ich hinter der Tabelle dynamisch in Code erstellt werden soll, müssen die Zellen unterschiedliche Höhen aufweisen.

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

ich eine Lösung nicht finden kann, wie die Zellen Höhen auszurichten, wenn sie in Code hinter erstellt werden. Gibt es eine Möglichkeit, dieses Problem zu lösen?

Antwort

0

ändern new TableCell(new Paragraph(...) { BorderThickness = ... }) zu new TableCell(new Paragraph(...)) { BorderThickness = ... }

So ist der Grund Paragraph nicht den ganzen Raum aus TableCell nimmt, und die Grenze ist im Inneren der Zelle. Aber wenn Sie versuchen, TableCell Grenze zu malen, wird alles gut funktionieren.

+0

Danke cdmnk! Lösung war so einfach. –