我编写了一个 PowerPoint 2010 插件,允许用户创建形状对。这些对是同步的(例如位置、颜色、文本...)。这些对存储为以下类的对象:
class Pair
{
Shape LeftShape { get; set; }
Shape RightShape { get; set; }
}
如果修改了一个形状,其中有一对包含该形状,则另一个形状将被更新。
可以在主布局上定义对。同步在主服务器上工作。如果该对由两个占位符组成,并且我基于母版创建幻灯片,那么新形状当然不会同步。有没有办法找到形状的主人等价物,反之亦然?那么算法将是:
s1's modification is recognized
if s1 is a placeholder
find s1's equivalent in master -> m1
look up the partner of m1 -> m2
find the shape in the current slide that is based on m2 -> s2
update s2
我查看了新形状的Name
和Id
属性。但它们与主形状的属性不同。
顺便说一句,有没有一种很好的方法来确定形状是否是占位符?如果形状没有占位符,我目前的方法是查询PlaceholderFormat
哪个抛出异常。但这绝对不是一个好办法。