如何将 Shape 对象添加到 Shapes 集合
How to add a Shape object to Shapes collection
这看起来微不足道,但我一直没能找到办法。 PowerPoint 对象模型如何允许您将 Shape
对象添加到幻灯片的 Shapes
集合中?我可以使用 Shapes.AddSmartArt()
、Shapes.AddPicture()
等函数添加新形状,但这些会添加 new 形状。如果我想将现有 Shape 对象的引用添加到幻灯片的形状中怎么办?
一种方法是在形状对象上调用 Copy()
,然后在目标幻灯片中调用 Paste()
,但我发现它不太理想,因为我们将修改剪贴板过程(我知道我们可以在手术后恢复它,但话又说回来,这是蹩脚的)。
据我搜索,Shapes
集合中没有 Add()
、Append()
或 Insert()
函数。
编辑
可能我说的不够清楚。让我再试一次。假设我在这样的变量中有一个 Shape 对象 (PowerPoint/VSTO/C#):
Shape s = GetShape(); //This function returns a Shape object
MyPresentation.Slides[1].Shapes.???(s);
我需要一个合适的函数来代替 ???
;类似于 Add
、Insert
、Append
等,但对象模型中不存在此类内容。
形状 collection 是 read-only。那是因为它们只包含特定于某个范围的形状。在 Word 中,该范围可以是一个段落、一个部分、一个 header、一个组形状、整个文档等。在 PowerPoint 中,我假设您可以从一张幻灯片、所有幻灯片和也许是一组形状。
您不能直接添加到形状 collection 因为您必须指定该形状的位置。使用新形状执行此操作的方法已经存在。移动或复制形状不存在这种方法。
如果有一种方法可以在不使用 copy/paste 的情况下将形状移动到不同的位置,那就太好了,但是 Microsoft 的某些人肯定认为这样做不值得。
这看起来微不足道,但我一直没能找到办法。 PowerPoint 对象模型如何允许您将 Shape
对象添加到幻灯片的 Shapes
集合中?我可以使用 Shapes.AddSmartArt()
、Shapes.AddPicture()
等函数添加新形状,但这些会添加 new 形状。如果我想将现有 Shape 对象的引用添加到幻灯片的形状中怎么办?
一种方法是在形状对象上调用 Copy()
,然后在目标幻灯片中调用 Paste()
,但我发现它不太理想,因为我们将修改剪贴板过程(我知道我们可以在手术后恢复它,但话又说回来,这是蹩脚的)。
据我搜索,Shapes
集合中没有 Add()
、Append()
或 Insert()
函数。
编辑
可能我说的不够清楚。让我再试一次。假设我在这样的变量中有一个 Shape 对象 (PowerPoint/VSTO/C#):
Shape s = GetShape(); //This function returns a Shape object
MyPresentation.Slides[1].Shapes.???(s);
我需要一个合适的函数来代替 ???
;类似于 Add
、Insert
、Append
等,但对象模型中不存在此类内容。
形状 collection 是 read-only。那是因为它们只包含特定于某个范围的形状。在 Word 中,该范围可以是一个段落、一个部分、一个 header、一个组形状、整个文档等。在 PowerPoint 中,我假设您可以从一张幻灯片、所有幻灯片和也许是一组形状。
您不能直接添加到形状 collection 因为您必须指定该形状的位置。使用新形状执行此操作的方法已经存在。移动或复制形状不存在这种方法。
如果有一种方法可以在不使用 copy/paste 的情况下将形状移动到不同的位置,那就太好了,但是 Microsoft 的某些人肯定认为这样做不值得。