我想更改幻灯片中几个形状的填充颜色。
我在msdn上找到了这个教程,但它只提到了一个非常具体的场景(第一张幻灯片的第一个形状,在只有一个形状的演示文稿中)=> Link To The MSDN Tutorial
所以,也许我并不是真的理解整个事情,但在我看来,当你试图动态访问ShapeTree Elements时,你会得到一个" nullReference异常"或者"在尝试访问ShapeStyle属性时没有定义为对象"的实例(即使实际使用FirstChild()示例)。
所以我尝试按照以下方式访问它,通过元素,但没有成功。
ShapeTree tree = slide.Slide.CommonSlideData.ShapeTree;
for (var i = 0; i <= 30; i++)
{
try
{
DRAW.FillReference fillRef = tree.ElementAt(i).GetFirstChild<DocumentFormat.OpenXml.Presentation.Shape>().ShapeStyle.FillReference;
fillRef.SchemeColor = new DRAW.SchemeColor();
fillRef.SchemeColor.Val = DRAW.SchemeColorValues.Accent6;
}
catch (Exception e)
{
//Null reference Excpetion on the fillRef initialization, does the same if I cast with DocumentFormat.OpenXml.Drawing.Shape
}
}
我的目标很简单,我想通过识别它的内部文本来改变形状的填充颜色。
提前致谢!
干杯