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

20
我有一个MigraDoc表格,在其中指定了0.75厘米的行高,并且文本在单元格中是垂直居中对齐的。当我将cell.Format.Shading.Color设置为非白色时,仍然会在边界附近显示四面环白的部分。
我发现可以通过设置column.LeftPadding = 0和column.RightPadding = 0来删除文本左右两侧的白色区域。但是,我无法弄清楚如何使上下两侧的白条消失而不影响文本的垂直对齐。如果我将段落行高更改为0.75厘米,则条纹消失,但文本将底对齐在单元格中。我不能设置列阴影颜色,因为列中的每个单元格都包含不同的颜色。是否有人知道如何强制填充段落以使其在单元格内垂直填充(或以其他方式使背景颜色在单元格内均匀)?
以下是我的示例代码(使用C#),其中table的类型为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");

    ...
}
1个回答

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

我知道一定有正确的方法来解决这个问题。我的临时解决方案是添加一个额外的段落,并设置两个段落的行高,直到垂直对齐匹配并且单元格完全填充。 - Jeff G

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接