Ich habe eine ListView in meiner WPF-App, die an eine Sammlung von Aufgaben gebunden ist (A to-do-Liste). Ich möchte, dass der Benutzer seine Liste drucken kann und basierend auf den MSDN-Richtlinien den folgenden Code erstellt hat. (Dies ist mein erster Ausflug in Druck)Warum druckt diese Flowdocument-Tabelle immer 2 Spalten
public FlowDocument GetPrintDocument()
{
FlowDocument flowDoc = new FlowDocument();
Table table = new Table();
int numColumns = 3;
flowDoc.Blocks.Add(table);
for(int x=0;x<numColumns;x++)
{
table.Columns.Add(new TableColumn());
}
GridLengthConverter glc = new GridLengthConverter();
table.Columns[0].Width = (GridLength)glc.ConvertFromString("300");
table.Columns[1].Width = (GridLength)glc.ConvertFromString("50");
table.Columns[2].Width = (GridLength)glc.ConvertFromString("50");
table.RowGroups.Add(new TableRowGroup());
table.RowGroups[0].Rows.Add(new TableRow());
// store current working row for reference
TableRow currentRow = table.RowGroups[0].Rows[0];
currentRow.FontSize = 16;
currentRow.FontWeight = FontWeights.Bold;
currentRow.Cells.Add(new TableCell(new Paragraph(new Run("Subject"))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run("Due Date"))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run("Urgency"))));
for (int i = 1; i < issues.Count+1; i++)
{
table.RowGroups[0].Rows.Add(new TableRow());
currentRow = table.RowGroups[0].Rows[i];
currentRow.FontSize = 12;
currentRow.FontWeight = FontWeights.Normal;
currentRow.Cells.Add(new TableCell
(new Paragraph
(new Run
(issues[i - 1].IssSubject))));
currentRow.Cells.Add(new TableCell
(new Paragraph
(new Run
(issues[i - 1].IssDueDate.Date.ToString()))));
currentRow.Cells.Add(new TableCell
(new Paragraph
(new Run
(issues[i - 1].IssUrgency.ToString()))));
}
return flowDoc;
}
Wenn ich versuche, mit dem folgenden Code zu drucken Ich habe immer meine Seite in der Mitte mit zwei Spalten aufgeteilt nach unten (jeweils die drei Spalten der Tabelle enthalten). Ich habe verschiedene GridLength-Werte ausprobiert, hatte aber keinen Erfolg.
printDialog.PrintDocument(((IDocumentPaginatorSource)StatusBoardViewModel
.GetPrintDocument())
.DocumentPaginator
,"Flow Document Print Job");
Ich kann Ihnen nicht sagen, wie häufig ich wünschte, ich hätte eine Website verbergen konnte von meiner Suchergebnisse. –