Граница ячейки в таблице - PullRequest
1 голос
/ 14 ноября 2011

У меня есть таблица, которую я печатаю.Я добавил границы для всех ячеек, но у меня есть проблема, когда таблица входит / выходит на новую страницу.Затем граница перемещается / остается на странице в зависимости от доступного пространства, занимаемого каждой ячейкой.Можно ли сделать эту строку зависимой в sted?

Вот изображение проблемы

enter image description here

Серая линия - это смещение страницы.

Вот как я это сделал

foreach (Task task in TasksToShow)
        {
            myTable.RowGroups[0].Rows.Add(new TableRow());
            currentRow = myTable.RowGroups[0].Rows[rowCount++];

            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.TaskID.ToString()))));
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.TaskName))));
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.TaskResponsible))));
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.TaskResponsibleDepartment))));
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.Category))));
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.Status))));
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.Priority.ToString()))));
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.StartDate.ToString("dd/MM/yy")))));
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.ActualHours.TotalHours.ToString() + "h"))));
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.EstimatedHours.TotalHours.ToString() + "h"))));
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.EstimatedDeploymentDate.ToString("dd/MM/yy")))));
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.DesiredImplementationDate.ToString("dd/MM/yy")))));
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.APP.StartDate.ToString("dd/MM/yy")))));
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.APP.EstimatedHours.TotalHours.ToString() + "h"))));
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.APP.ActualHours.TotalHours.ToString() + "h"))));
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.IN.StartDate.ToString("dd/MM/yy")))));
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.IN.EstimatedHours.TotalHours.ToString() + "h"))));
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.IN.ActualHours.TotalHours.ToString() + "h"))));
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.SIS.StartDate.ToString("dd/MM/yy")))));
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.SIS.EstimatedHours.TotalHours.ToString() + "h"))));
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.SIS.ActualHours.TotalHours.ToString() + "h"))));
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(task.Tags))));

            currentRow.FontSize = 10;
            currentRow.FontWeight = FontWeights.Normal;

            for (int n = 0; n < currentRow.Cells.Count; n++ )
            {
                currentRow.Cells[n].BorderThickness = new Thickness(1, 1, 1, 1);
                currentRow.Cells[n].BorderBrush = Brushes.Black;
            }
        }

Есть ли способ сделать ширину ячеек зависимой от самой большой ячейки, а не просто сделать все ячейки одинаковой ширины?1015 *

Надеюсь, вы можете помочь.

1 Ответ

2 голосов
/ 15 ноября 2011

Я нашел решение, которое, по крайней мере, заставляет его выглядеть одинаково на всем протяжении, но я еще не полностью удовлетворен им.Я только что изменил толщину в последнем цикле for на это:

for (int n = 0; n < currentRow.Cells.Count; n++ ) 
{ 
    currentRow.Cells[n].BorderThickness = new Thickness(0, 2, 1, 0); 
    currentRow.Cells[n].BorderBrush = Brushes.Black; 
}
...