UndoEngine 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指定一般的设计时撤消/重复功能。
public ref class UndoEngine abstract : IDisposable
public abstract class UndoEngine : IDisposable
type UndoEngine = class
interface IDisposable
Public 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 |
在执行撤消操作之后立即发生。 |