【问题标题】:PowerPoint 2013 VSTO Undo-Redo CustomerData or CustomXMLPart manipulationPowerPoint 2013 VSTO 撤消-重做 CustomerData 或 CustomXMLPart 操作
【发布时间】: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


【解决方案1】:

回答我自己的问题:

Tags

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-18
    • 2012-06-22
    • 2018-08-23
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    相关资源
    最近更新 更多