UndoEngine Класс

Определение

Определяет универсальную функциональность отмены и повтора действия во время разработки.Specifies generic undo/redo functionality at design time.

public ref class UndoEngine abstract : IDisposable
public abstract class UndoEngine : IDisposable
type UndoEngine = class
    interface IDisposable
Public MustInherit Class UndoEngine
Implements IDisposable
Наследование
UndoEngine
Реализации

Комментарии

UndoEngineАбстрактный класс предоставляет реализацию функции отмены по умолчанию во время разработки.The UndoEngine abstract class provides a default implementation of undo functionality at design time. Блок отмены представляет одну единицу операции отмены.An undo unit represents a single unit of undoable work. Эта единица добавляется в стек, и пользователь может проанализировать стек для отмены каждого действия.This unit is added to a stack and the user can then walk the stack to undo each action. Единицы отмены обычно предназначены для переключения. Это означает, что вызов функции отмены дважды возвращает приложение в начальное состояние.Undo units typically are designed to toggle, which means that calling undo twice returns the application to its starting state.

UndoEngineКласс использует преимущества следующих характеристик объектов, выполняющихся в конструкторе:The UndoEngine class takes advantage of the following characteristics of objects running within the designer:

  • Загрузчик конструктора может сохранять все интересные объекты в определенном формате.All interesting objects can be persisted to some format by the designer loader.

  • Все объекты вызывают уведомления об изменениях свойств при изменении свойства.All objects raise property-change notifications when a property is changed.

  • IDesignerHost предоставляет представление о транзакциях, которые можно использовать для формирования действия отмены, охватывающего несколько меньших действий.IDesignerHost offers the idea of transactions, which can be used to fabricate an undo action that spans multiple smaller actions.

С помощью этих функций UndoEngine можно автоматически составить любые единицы отмены, которые ему требуются.With these features, UndoEngine can fabricate any undo units it needs automatically.

Примечание

Не изменяйте значения свойств напрямую.Do not change property values directly. UndoEngineКласс требует использования соответствующего TypeDescriptor значения для изменения значений свойств.The UndoEngine class requires you to use the appropriate TypeDescriptor to change property values.

UndoEngine отслеживает уведомления об изменениях для создания блоков отмены, а сами единицы состоят из сериализованных состояний объектов.UndoEngine monitors for change notifications to create undo units, and the units themselves consist of serialized object states. В следующей таблице приведены службы, которые должны быть доступны при UndoEngine создании.The following table shows the services that must be available when UndoEngine is created.

СлужбаService ОписаниеDescription
ComponentSerializationService Сохраняет значения свойств и объектов для компонента до и после внесения изменений.Saves property and object values for a component before and after a change is made.
IComponentChangeService Уведомляет механизм отмены изменений, внесенных в компоненты.Notifies the undo engine of changes made to components.
IDesignerHost Используется для наблюдения за транзакциями.Used to track transactions.

Примечание

Так как UndoEngine класс требует ComponentSerializationService и IComponentChangeService , он доступен только во время разработки.Because the UndoEngine class requires ComponentSerializationService and IComponentChangeService, it is available only at design time.

Подсистема отмены отслеживает транзакции и создает один блок отмены, охватывающий транзакцию.The undo engine tracks transactions and creates a single undo unit that encompasses a transaction. В результате механизм отмены управляет длительностью отмены действия.As a result, the undo engine has control over the duration of an undoable action. Кроме того, поскольку транзакции могут называться, отменяемые действия наследуют их имена от текущей транзакции.Also, because transactions can be named, undoable actions inherit their names from the current transaction. Если транзакция недоступна и передается сообщение об изменении, подсистема отмены операций создает имя отмены в зависимости от типа изменения (например, "изменить свойство" текст "").If no transaction is available and a change is reported, the undo engine creates an undo name based on the type of change (for example, "Change property 'Text'").

Конструкторы

UndoEngine(IServiceProvider)

Инициализирует новый экземпляр класса UndoEngine.Initializes a new instance of the UndoEngine class.

Свойства

Enabled

Включает или отключает объект UndoEngine.Enables or disables the UndoEngine.

UndoInProgress

Определяет, выполняется ли действие отмены.Indicates if an undo action is in progress.

Методы

AddUndoUnit(UndoEngine+UndoUnit)

Добавляет объект UndoEngine.UndoUnit в стек отмены.Adds an UndoEngine.UndoUnit to the undo stack.

CreateUndoUnit(String, Boolean)

Создает новый экземпляр UndoEngine.UndoUnit.Creates a new UndoEngine.UndoUnit.

DiscardUndoUnit(UndoEngine+UndoUnit)

Обнуляет объект UndoEngine.UndoUnit.Discards an UndoEngine.UndoUnit.

Dispose()

Освобождает все ресурсы, занятые модулем UndoEngine.Releases all resources used by the UndoEngine.

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом UndoEngine, а при необходимости освобождает также управляемые ресурсы.Releases the unmanaged resources used by the UndoEngine and optionally releases the managed resources.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetRequiredService(Type)

Возвращает запрашиваемую службу.Gets the requested service.

GetService(Type)

Возвращает запрашиваемую службу.Gets the requested service.

GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
OnUndoing(EventArgs)

Вызывает событие Undoing.Raises the Undoing event.

OnUndone(EventArgs)

Вызывает событие Undone.Raises the Undone event.

ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

События

Undoing

Возникает непосредственно перед выполнением действия отмены.Occurs immediately before an undo action is performed.

Undone

Возникает непосредственно после выполнения действия отмены.Occurs immediately after an undo action is performed.

Применяется к

См. также раздел