如何在MigraDoc表中设置单元格的背景色

问题描述:

我有一个MigraDoc表,其中我指定的行高为0.75cm,并且文本在单元格中间垂直对齐。当我将cell.Format.Shading.Color设置为非白色时,边框附近仍有一部分单元在所有四条边上显示为白色。如何在MigraDoc表中设置单元格的背景色

我发现我可以通过设置column.LeftPadding = 0和column.RightPadding = 0删除文本的左侧和右侧的白色部分。但是,我无法弄清楚如何获得白色条纹在顶部/文本底部消失而不影响文本的垂直对齐。如果我将段落线高度更改为0.75厘米,则条纹会消失,但文本会在单元格内向下对齐。我无法设置列着色颜色,因为列中的每个单元格都包含不同的颜色。有没有人知道一种方法来强制该段落垂直填充单元格(或以其他方式使背景颜色在单元格内均匀)?

这里是我的代码示例(在C#),其中表型MigraDoc.DocumentObjectModel.Tables.Table的:

... 

// Add a column at index #2 
var column = table.AddColumn(); 
column.LeftPadding = 0; 
column.RightPadding = 0; 

// Add more columns 
... 

// Iterate through the data printed in each row 
foreach (var rowData in myData) 
{ 
    // Create a row for the data 
    var row = table.AddRow(); 
    row.Height = ".75cm"; 
    row.Format.Font.Size = 11; 
    row.VerticalAlignment = VerticalAlignment.Center; 

    ... 

    // The following is for illustrative purposes... the actual 
    //  colors and text is determined by the data within the cell 
    var cell = row.Cells[2]; 
    cell.Format.Shading.Color = Colors.Black; 
    cell.Format.Font.Color = Colors.White; 
    var paragraph = cell.AddParagraph("Example"); 

    ... 
} 

尝试cell.Shading.Color,而不是cell.Format.Shading.Color - 前者设置单元格的颜色,后者设置文本背景的颜色(并且单元格的填充将具有不同的颜色)。

+0

我知道必须有一种方法来正确地做到这一点。我的黑客解决方法是添加一个段落并设置两段的行高,直到垂直对齐匹配并且单元格完全填充。 – 2015-04-06 15:31:18