Ich habe dieses Bild in MS Word erstellt und ich versuche, den Stil in meiner WPF-App mit den Dokumenten zu replizieren. Zunächst wird das 'von':WPF-Dokument: Abrufen der Tabellenzellenrahmen richtig
alt text http://img337.imageshack.us/img337/1275/correntborder.png
Next mein Versuch zu replizieren:
alt text http://img156.imageshack.us/img156/1711/extrawhiteborder.png
Meine Frage wahrscheinlich ziemlich offensichtlich ist. Was mache ich falsch? Ich kann keine Padding-Eigenschaft für die Zeilengruppe oder die Zeile finden. Unten ist mein Code:
public override FlowDocument CreateDocumentSection(IInteractivityElement pElement)
{
var result = new FlowDocument();
// show the header
result.Blocks.Add(CreateHeading(pElement.Header));
// we don't show anything else if there aren't any columns
var nrColumns = pElement.GetIntegralData("CurrentColumnCount") ?? 0;
if (nrColumns == 0) return result;
Table mainTable = new Table();
result.Blocks.Add(mainTable);
// columns
for (long tableIdx = 0; tableIdx < nrColumns; tableIdx++)
{
var newColumn = new TableColumn();
mainTable.Columns.Add(newColumn);
}
// row group for header
TableRowGroup rowGroup = new TableRowGroup();
mainTable.RowGroups.Add(rowGroup);
// row for header
TableRow headerRow = new TableRow();
headerRow.Background = new SolidColorBrush(Color.FromRgb(79, 129, 189));
headerRow.Foreground = new SolidColorBrush(Colors.White);
rowGroup.Rows.Add(headerRow);
// add columns for each header cell
for (long tableIdx = 0; tableIdx < nrColumns; tableIdx++)
{
var headerNameKey = CreateColumnNameKey(tableIdx);
TableCell headerCell = new TableCell(new Paragraph(new Run(pElement.GetStringData(headerNameKey))));
headerRow.Cells.Add(headerCell);
}
TableRow emptyRow = new TableRow();
emptyRow.Foreground = new SolidColorBrush(Colors.Gray);
rowGroup.Rows.Add(emptyRow);
TableCell emptyInstructionCell = new TableCell();
emptyInstructionCell.BorderBrush = new SolidColorBrush(Color.FromRgb(79, 129, 189));
emptyInstructionCell.BorderThickness = new Thickness(1.0);
emptyInstructionCell.ColumnSpan = Convert.ToInt32(nrColumns);
emptyInstructionCell.Blocks.Add(new Paragraph(new Run(pElement.Instruction)));
emptyRow.Cells.Add(emptyInstructionCell);
return result;
}
Wenn Zellen nicht auf gleicher Höhe sind, haben Sie Probleme – GorillaApe