这看似微不足道,但我找不到办法。 PowerPoint对象模型如何允许您将Shape
对象添加到幻灯片的Shapes
集合中?我可以使用Shapes.AddSmartArt()
,Shapes.AddPicture()
等函数添加新形状,但这些将添加 new 形状。如果我有一个想要添加到幻灯片形状的现有Shape对象的引用怎么办?
这样做的一种方法是在形状对象上调用Copy()
,然后在目标幻灯片中调用Paste()
,但我发现它不太理想,因为我们将在此过程中修改剪贴板(我知道我们可以在手术后恢复它,但这又是跛脚)。
就我搜索的内容而言,Add()
集合中没有Append()
,Insert()
或Shapes
个函数。
也许我说得不够清楚。让我再尝试一次。假设我在这样的变量中有一个Shape对象(PowerPoint / VSTO / C#):
Shape s = GetShape(); //This function returns a Shape object
MyPresentation.Slides[1].Shapes.???(s);
我需要一个合适的功能代替???
;像Add
,Insert
,Append
之类的东西,但对象模型中没有这样的东西。
答案 0 :(得分:0)
形状集合是只读的。这是因为它们只包含特定于范围的形状。在Word中,该范围可以是段落,部分,标题,组形状,整个文档等。在PowerPoint中,我假设您可以从幻灯片,所有幻灯片和组形状中获取形状列表
您无法直接添加到形状集合中,因为您必须指定该形状应该去的位置。已经存在使用新形状执行此操作的方法。移动或复制形状不存在这种方法。
如果有一种方法可以在不使用复制/粘贴的情况下将形状移动到其他位置,那将是很好的,但微软的某些人必须已经确定它不值得这样做。