1

我正在构建一个 PowerPoint VSTO 插件,我在演示文稿中存储了大量元数据。

我目前将它存储为 XML 来处理AddIn.Application.ActivePresentation.CustomXMLParts全局数据和Slide.CustomerData幻灯片特定信息。

问题是它们都没有在撤消/重做堆栈上表示。我可以对演示文稿进行五万亿次更改,并在中间的某个地方修改我的自定义 XML,撤消所有操作并仍然读取我上次设置的 XML。

因为我希望我的修改可以撤消/重做,所以我能想到的最好的方法是将 XML 存储在 Shape 上,并在每次修改时删除 + 重新创建它。这样做的问题是用户可以不经意地删除形状或存储形状的幻灯片。

我需要一些不那么明显的东西(以防止意外删除),并且 - 最好是全局的 - 演示文稿上的对象,我可以将我的 XML 存储在可删除/可重新创建的对象上,并修改撤消/重做堆栈。

有这样的事情吗?

还是有更好的方法来做到这一点?

4

1 回答 1

0

回答我自己的问题:

标签

当您向其中添加某些内容时,Tags.Add("Name", "Value")它可以正确撤消,与CustomerDataor不同CustomXMLParts

演示文稿和幻灯片上都有标签,因此涵盖了我的两个场景。

于 2017-06-08T16:08:25.300 回答