【发布时间】:2017-06-08 09:53:15
【问题描述】:
我正在构建一个 PowerPoint VSTO 插件,用于在演示文稿中存储大量元数据。
我目前将其存储为 XML,以使用 AddIn.Application.ActivePresentation.CustomXMLParts 获取全局数据和 Slide.CustomerData 获取幻灯片特定信息。
问题是它们都没有在撤消/重做堆栈上表示。我可以对演示文稿进行五万亿次更改,并在中间某处修改我的自定义 XML,撤消所有操作并仍然读取我上次设置的 XML。
由于我希望我的修改是可撤消/可重做的,所以我能想到的最好的方法是将 XML 存储在 Shape 中,并在每次修改时删除并重新创建它。这样做的问题是用户可以不经意地删除形状或存储形状的幻灯片。
我需要一些不那么显眼的东西(以防止意外删除),并且 - 最好是全局的 - 演示文稿上的对象,我可以在其上存储可删除/可重新创建的 XML 并修改撤消/重做堆栈。
有这样的吗?
或者有更好的方法吗?
【问题讨论】:
-
嗨@vinczemarton 我有一点疑问。您如何能够列出形状中存在的所有 customXML。我用 shape.CustomerData.Add() 方法创建。
标签: vsto undo-redo powerpoint-2013