UndoEngine 类 
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指定一般的设计时撤消/重复功能。
public ref class UndoEngine abstract : IDisposablepublic abstract class UndoEngine : IDisposabletype UndoEngine = class
    interface IDisposablePublic MustInherit Class UndoEngine
Implements IDisposable- 继承
- 
				UndoEngine
- 实现
注解
抽象 UndoEngine 类在设计时提供撤消功能的默认实现。 撤消单元表示可撤消工作的单个单元。 此单元将添加到堆栈中,然后用户可以遍遍堆栈以撤消每个操作。 撤消单元通常设计为切换,这意味着调用撤消两次会将应用程序返回到其启动状态。
类 UndoEngine 利用设计器中运行的对象的以下特征:
- 设计器加载程序可以将所有有趣的对象保留为某种格式。 
- 更改属性时,所有对象都会引发属性更改通知。 
- IDesignerHost 提供了事务的概念,该概念可用于构造跨多个较小操作的撤消操作。 
借助这些功能, UndoEngine 可以自动构造所需的任何撤消单位。
注意
请勿直接更改属性值。 类 UndoEngine 要求使用适当的 TypeDescriptor 来更改属性值。
UndoEngine 监视更改通知以创建撤消单位,并且单元本身由序列化的对象状态组成。 下表显示了创建时 UndoEngine 必须可用的服务。
| 服务 | 说明 | 
|---|---|
| ComponentSerializationService | 在更改之前和之后保存组件的属性和对象值。 | 
| IComponentChangeService | 通知撤消引擎对组件所做的更改。 | 
| IDesignerHost | 用于跟踪事务。 | 
注意
UndoEngine由于 类需要 ComponentSerializationService 和 IComponentChangeService,因此它仅在设计时可用。
撤消引擎跟踪事务并创建包含事务的单个撤消单元。 因此,撤消引擎可以控制可撤消操作的持续时间。 此外,由于事务可以命名,因此可撤消操作会从当前事务继承其名称。 如果没有可用的事务并且报告了更改,则撤消引擎会根据更改类型创建一个撤消名称 (例如,“更改属性'Text'”) 。
构造函数
| UndoEngine(IServiceProvider) | 初始化 UndoEngine 类的新实例。 | 
属性
| Enabled | 启用或禁用 UndoEngine。 | 
| UndoInProgress | 指示撤消操作是否正在进行。 | 
方法
| AddUndoUnit(UndoEngine+UndoUnit) | 将 UndoEngine.UndoUnit 添加到撤消堆栈中。 | 
| CreateUndoUnit(String, Boolean) | 创建一个新的 UndoEngine.UndoUnit。 | 
| DiscardUndoUnit(UndoEngine+UndoUnit) | |
| Dispose() | 释放由 UndoEngine 使用的所有资源。 | 
| Dispose(Boolean) | 释放由 UndoEngine 占用的非托管资源,还可以另外再释放托管资源。 | 
| Equals(Object) | 确定指定对象是否等于当前对象。(继承自 Object) | 
| GetHashCode() | 作为默认哈希函数。(继承自 Object) | 
| GetRequiredService(Type) | 获取请求的服务。 | 
| GetService(Type) | 获取请求的服务。 | 
| GetType() | 获取当前实例的 Type。(继承自 Object) | 
| MemberwiseClone() | 创建当前 Object 的浅表副本。(继承自 Object) | 
| OnUndoing(EventArgs) | 引发 Undoing 事件。 | 
| OnUndone(EventArgs) | 引发 Undone 事件。 | 
| ToString() | 返回表示当前对象的字符串。(继承自 Object) | 
事件
| Undoing | 紧挨在执行撤消操作之前发生。 | 
| Undone | 在执行撤消操作之后立即发生。 |