我正在构建一个 PowerPoint VSTO 插件,我在演示文稿中存储了大量元数据。
我目前将它存储为 XML 来处理AddIn.Application.ActivePresentation.CustomXMLParts
全局数据和Slide.CustomerData
幻灯片特定信息。
问题是它们都没有在撤消/重做堆栈上表示。我可以对演示文稿进行五万亿次更改,并在中间的某个地方修改我的自定义 XML,撤消所有操作并仍然读取我上次设置的 XML。
因为我希望我的修改可以撤消/重做,所以我能想到的最好的方法是将 XML 存储在 Shape 上,并在每次修改时删除 + 重新创建它。这样做的问题是用户可以不经意地删除形状或存储形状的幻灯片。
我需要一些不那么明显的东西(以防止意外删除),并且 - 最好是全局的 - 演示文稿上的对象,我可以将我的 XML 存储在可删除/可重新创建的对象上,并修改撤消/重做堆栈。
有这样的事情吗?
还是有更好的方法来做到这一点?