![](/img/trans.png)
[英]How can i match the background color of a button with the foreground of another item
[英]How can I modify the foreground and background color of an OpenXML TableCell?
我正在按如下方式创建表格单元格:
private static TableCell GetHeaderCell(string cellText)
{
var tc = new TableCell(new Paragraph(new Run(new Text(cellText))));
return tc;
}
我希望它是带有白色文字的蓝色。
我尝试了以下方法,但不起作用; 当我尝试打开文档时,出现内容有问题的错误:
private static TableCell GetHeaderCell(string cellText)
{
var props = new TableCellProperties();
var solidFill = new SolidFill();
var rgbColorHex = new RgbColorModelHex() { Val = "FF0000" };//Red Background for Single TableCell.
solidFill.Append(rgbColorHex);
props.Append(solidFill);
var paragraph = new Paragraph(new Run(new Text(cellText)));
var tc = new TableCell(paragraph, props);
return tc;
}
完整的错误如下:
这是一个两部分的问题:
1) 如何修改 OpenXML TableCell 的前景
OpenXML TableCell
的前景由Run
的属性定义,称为RunProperties
。 要向运行添加颜色,您必须使用Val
属性添加Color
对象。
// Create the RunProperties object for your run
DocumentFormat.OpenXml.Wordprocessing.RunProperties rp =
new DocumentFormat.OpenXml.Wordprocessing.RunProperties();
// Add the Color object for your run into the RunProperties
rp.Append(DocumentFormat.OpenXml.Wordprocessing.Color() { Val = "ABCDEF" });
// Create the Run object
DocumentFormat.OpenXml.WordProcessing.Run run =
new DocumentFormat.OpenXml.WordProcessing.Run();
// Assign your RunProperties to your Run
run.RunProperties = rp;
// Add your text to your Run
run.Append(new Text("My Text"));
请参阅参考问题。
2) 如何修改 OpenXML TableCell 的背景
所述TableCell
背景可以使用被修饰TableCellProperties
,上述类似Run
,它采用RunProperties
。 但是,您将Shading
对象应用于TableCellProperties
。
// Create the TableCell object
DocumentFormat.OpenXml.Wordprocessing.TableCell tc =
new DocumentFormat.OpenXml.Wordprocessing.TableCell();
// Create the TableCellProperties object
TableCellProperties tcp = new TableCellProperties(
new TableCellWidth { Type = TableWidthUnitValues.Auto, }
);
// Create the Shading object
DocumentFormat.OpenXml.Wordprocessing.Shading shading =
new DocumentFormat.OpenXml.Wordprocessing.Shading() {
Color = "auto",
Fill = "ABCDEF",
Val = ShadingPatternValues.Clear
};
// Add the Shading object to the TableCellProperties object
tcp.Append(shading);
// Add the TableCellProperties object to the TableCell object
tc.Append(tcp);
// also need to ensure you include the text, otherwise it causes an error (it did for me!)
tc.Append(new Paragraph(new Run(new Text(cellText))));
请参阅参考问题。
DocumentFormat.OpenXml.WordProcessingRunProperties rp =
new DocumentFormat.OpenXml.WordProcessingRunProperties();
=
DocumentFormat.OpenXml.WordProcessing.RunProperties rp =
new DocumentFormat.OpenXml.WordProcessing.RunProperties();
??
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.