PowerPoint 2013 VSTO 撤消-重做 CustomerData 或 CustomXMLPart 操作

PowerPoint 2013 VSTO Undo-Redo CustomerData or CustomXMLPart manipulation

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

我目前将其存储为 XML 作为全局数据的 AddIn.Application.ActivePresentation.CustomXMLParts 和幻灯片特定信息的 Slide.CustomerData

问题是它们都没有出现在 Undo/Redo 堆栈中。我可以对演示文稿进行五万亿次更改,并在中间某处修改我的自定义 XML,撤消所有内容并仍然读回我上次设置的 XML。

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

我需要一些不那么显眼的东西(以防止意外删除)和 - 最好是全局 - 我可以在演示文稿上存储我的 XML 的对象是 deletable/recreatable 并修改 Undo/Redo堆栈。

有这样的吗?

或者有更好的方法吗?

回答我自己的问题:

Tags

当您使用 Tags.Add("Name", "Value") 添加内容时,它是可以正确撤消的,这与 CustomerDataCustomXMLParts 不同。

标签出现在演示文稿和幻灯片上,所以我的两个场景都被涵盖了。