Durch die Angabe zum Rückgängigmachen Unterstützung für Designer
Designer, z. B. Editoren, müssen in der Regel Rückgängig-Vorgänge unterstützen, sodass die Benutzer ihre neuen Änderungen rückgängig gemacht werden können, wenn sie ein Codeelement nicht ändern.
Die meisten die in Visual Studio Designer implementiert werden, die rückgängig zu machen, die automatisch von der Umgebung unterstützt wird.
Implementierungen von Designern, die Unterstützung für die Funktion Rückgängig Berechtigung müssen:
Provide Verwaltung rückgängig machen, indem die abstrakte Basisklasse implementiert UndoEngine
Stellt Dauerhaftigkeit und CodeDOM-Unterstützung durch das Implementieren IDesignerSerializationService und der IComponentChangeService-Klassen.
Weitere Informationen über das Schreiben Designer, die .NET Frameworkfinden Sie unter Erweitern der Entwurfszeitunterstützung.
Visual Studio SDK stellt eine Infrastruktur zum Rückgängigmachen Standard folgendermaßen:
Die Bereitstellung rückgängig - Implementierungen von der OleUndoEngine und UndoUnit-Klassen.
Dauerhaftigkeit von standardmäßigen und CodeDomComponentSerializationService CodeDOM-Unterstützung und die IComponentChangeService Implementierungen angeben.
Das Abrufen unterstützen automatisch rückgängig
Jeder Designer, der in Visual Studio erstellt wird, verfügt die automatische und macht vollständig unterstützt, wenn der Designer:
Nutzt eine basierte Klasse Control für seine Benutzeroberfläche aus.
Setzt CodeDOM-basierte StandardCodegenerierung und Analysesystem für die Codegenerierung und Dauerhaftigkeit ein.
Weitere Informationen zum Arbeiten mit Visual Studio-CodeDOM-Unterstützung finden Sie unter Generieren und Kompilieren von dynamischem Quellcode
Wann expliziten Designer verwendet die Unterstützung Rückgängig
Designer müssen ihre eigenen rückgängig machen die Verwaltung angeben, wenn sie eine grafische Benutzeroberfläche verwenden, so genannte ein Ansichtsadapter, anders als die, die von Controlangegeben wird.
Ein Beispiel hierfür erstellte möglicherweise ein Produkt mit einer webbasierten grafischen Entwurfstools statt einer Oberfläche .NET Framework basierte grafische Schnittstelle.
In solchen Fällen würde Verwenden dieses Ansichtsadapter mit Visual Studio mit ProvideViewAdapterAttributeregistrieren und explizites rückgängig machen müssen Verwaltung bereitstellt.
Unterstützung für Persistenz und CodeDOM Designer müssen, wenn sie nicht das Modell zur Codegenerierung Visual Studio , das im System.CodeDom-Namespace bereitgestellt wird.
Rückgängigmachen Unterstützung von Funktionen des Designers
Das Umgebungs-SDK stellt Standardimplementierungen von Schnittstellen, die benötigt werden, um bereitzustellen, macht die Unterstützung von Designern nicht mit basierter Klassen Control oder Benutzeroberflächen für ihre Standard-CodeDOM Dauerhaftigkeit sowie das Modell verwendet werden kann.
Die OleUndoEngine-Klasse leitet sich von der Klasse .NET Framework UndoEngine mit einer Implementierung der IOleUndoManager-Klasse, um Rückgängig-Vorgänge verwaltet werden.
Visual Studio erstellt die folgende Funktion Rückgängig in den Designer zur Verfügung:
Linked rückgängig machen Funktionen über mehrere Designern.
Untergeordnete Einheiten innerhalb eines Designers können mit ihren übergeordneten Elementen interagieren, indem sie IOleUndoUnit und IOleParentUndoUnit auf UndoUnitimplementieren.
Das Umgebungs-SDK bietet Unterstützung für Persistenz und CodeDOM durch das angegeben wird:
- CodeDomComponentSerializationService als Implementierungen IDesignerSerializationService
IComponentChangeService vom Entwurfshost bereitgestellt Visual Studio .
Verwenden von anzugeben Umgebungs-SDK-Funktionen Rückgängigmachen Unterstützung
Zum Abrufen Rückgängigmachen die Unterstützung, ein Objekt einen Designer implementiert, muss:
Instanziieren und Initialisieren Sie eine Instanz der OleUndoEngine-Klasse mit einer gültigen IServiceProvider Implementierung.
Diese IServiceProvider-Klasse muss die folgenden Dienste bereitstellen:
-
Die Designer, die Serialisierung Visual Studio CodeDOM verwenden, können auch CodeDomComponentSerializationService zu verwenden, das mit Visual Studio SDK als seine Implementierung IDesignerSerializationServicebereitgestellt wird.
In diesem Fall sollte die IServiceProvider-Klasse, die zum OleUndoEngine-Konstruktor bereitgestellt wird, dieses Objekt als Implementierung der IDesignerSerializationService-Klasse zurückgeben.
-
Die Designer DesignSurface Standardwert bereitgestellt wird vom Entwurfshost verwenden, werden Visual Studio garantiert, dass eine Standardimplementierung der IComponentChangeService-Klasse.
Die Designer implementieren, OleUndoEngine basiertes Mechanismus zum Rückgängigmachen von Änderungen automatisch nachverfolgt, wenn:
Eigenschaftenänderungen werden vom TypeDescriptor-Objekt vorgenommen.
IComponentChangeService-Ereignisse werden manuell erstellt, wenn eine undoable Änderung übernommen wird.
Die Änderung wurde auf dem Designer im Kontext DesignerTransactionerstellt.
Der Designer beschließt, um Rückgängigeinheiten entweder mit der standardmäßigen Rückgängigeinheit explizit zu erstellen, die von einer Implementierung von UndoUnit oder der Sicht-Studio-Besondere Implementierung UndoUnitbereitgestellt wird, die von UndoUnit berechnet und außerdem eine Implementierung von IOleUndoUnit und IOleParentUndoUnitbereitstellt.