2017-06-08 6 views
0

Je construis un add-in PowerPoint VSTO dans lequel je stocke beaucoup de métadonnées sur la présentation.PowerPoint 2013 VSTO Annulation d'une manipulation CustomerData ou CustomXMLPart

Je le stocke actuellement en tant que XML en manipulant AddIn.Application.ActivePresentation.CustomXMLParts pour les données globales et Slide.CustomerData pour les informations spécifiques à la diapositive.

Le problème est qu'aucun d'entre eux n'est représenté sur la pile Annuler/Rétablir. Je peux apporter des modifications au quintrillion à la présentation et modifier quelque part mon code XML personnalisé au milieu, tout annuler et toujours lire le code XML que j'ai défini en dernier. Puisque je veux que mes modifications soient Undo/Redoable, le mieux que je puisse penser est de stocker le XML sur une forme et supprimer + le recréer à chaque modification. Le problème avec ceci est que l'utilisateur peut supprimer inconsciemment la forme ou la diapositive sur laquelle la forme est stockée. J'ai besoin de quelque chose de moins visible (pour éviter une suppression accidentelle) et - de préférence global - objet sur la présentation que je peux stocker sur mon XML qui est effaçable/recréable et modifie cette pile Undo/Redo.

Y a-t-il quelque chose comme ça?

Ou y a-t-il une meilleure façon de le faire?

Répondre

0

Pour répondre à ma propre question:

Il est Tags! Lorsque vous ajoutez quelque chose avec Tags.Add("Name", "Value"), il est correctement annulable, contrairement à CustomerData ou CustomXMLParts. Les étiquettes sont présentes sur la présentation et sur les diapositives de sorte que mes deux scénarios sont couverts.