UndoManager
UndoManager类观察并记录模型的改变,并支持撤销和再做操作.
实现: IUndoManager
构造函数
属性
public bool ChecksTransactionLevel { get; set; }
value = undoManager.ChecksTransactionLevel
undoManager.ChecksTransactionLevel = value
当模型更改发生在交易之外时, 获取或设定此撤销管理器是否会向 Trace 聆听者输出警告 。
public IList<IUndoableEdit> CompoundEdits { get; private set; }
value = undoManager.CompoundEdits
undoManager.CompoundEdits = value
获得所有复数编辑的列表。
public CompoundEdit CurrentEdit { get; set; }
value = undoManager.CurrentEdit
undoManager.CurrentEdit = value
获得当前复合编辑,以记录额外的模型更改事件。
public string CurrentTransactionName { get; }
value = undoManager.CurrentTransactionName
获取 String 给出的当前交易名称 。
public IUndoableEdit EditToRedo { get; }
value = undoManager.EditToRedo
使当前 IUndoableEdit 重新打开, 如果没有, 则无效 。
public IUndoableEdit EditToUndo { get; }
value = undoManager.EditToUndo
使当前 IUndoableEdit 被撤销, 如果没有, 则无效 。
public bool IsUndoingRedoing { get; protected set; }
value = undoManager.IsUndoingRedoing
undoManager.IsUndoingRedoing = value
在调用 Undo 或 Redo 时, 此属性是真实的 。
public int MaximumEditCount { get; set; }
value = undoManager.MaximumEditCount
undoManager.MaximumEditCount = value
获取或设定此撤消管理器将记住的化合物编辑的最大次数 。
public IEnumerable<IDiagramModel> Models { get; }
value = undoManager.Models
获得一个列表, 列出此%% 2S0%% 正在录制的取消/ 重做信息的模型 。
public IList<string> NestedTransactionNames { get; private set; }
value = undoManager.NestedTransactionNames
undoManager.NestedTransactionNames = value
获取一叠正在进行的交易名称 。
public int TransactionLevel { get; protected set; }
value = undoManager.TransactionLevel
undoManager.TransactionLevel = value
获得当前交易级别。
public int UndoEditIndex { get; protected set; }
value = undoManager.UndoEditIndex
undoManager.UndoEditIndex = value
将索引输入当前可撤销编辑的 CompoundEdits 。
方法
public virtual void AddModel(IDiagramModel model)
undoManager.AddModel(model)
确保这个取消管理器知道一个IDiagramModel,它正在接收模型更改的事件通知 。
- model
protected virtual CompoundEdit CommitCompoundEdit(CompoundEdit cedit)
result = undoManager.CommitCompoundEdit(cedit)
这种方法在进行复式编辑时被 String 所取名.
- cedit
- ; 如果在承诺时间没有变化, 则此选项可能无效 。
返回值: 默认情况下,未修改的.
public bool CommitTransaction(string tname)
result = undoManager.CommitTransaction(tname)
只需拨打 String , 执行当前交易, 并带有交易的演示名称 。
- tname
- 交易名称
返回值: 字符串的调用值)
protected virtual bool EndTransaction(bool commit, string tname)
result = undoManager.EndTransaction(commit, tname)
停止当前交易,要么将其翻回,要么承诺.
- commit
- 真要正常终止交易; 假以中止并回滚已存在的编辑
- tname
- 交易的内部位置中立名称
返回值: 用于已承诺的顶级交易的正本
public virtual object FindPrimaryObject(IUndoableEdit edit)
result = undoManager.FindPrimaryObject(edit)
将 IUndoableEdit 返回一个代表修改内容的已编辑对象 。
- edit
- 通常为ModelChangedEventArgs或CompoundEdit的IUndoableEdit
返回值: 通常为节点或链接,但如果没有这样的对象,这可能无效,可能是因为模型属性被修改,或者因为参数中没有真正的编辑. .
public virtual void HandleModelChanged(object sender, ModelChangedEventArgs e)
undoManager.HandleModelChanged(sender, e)
为已改变的事件创建 IUndoableEdit 。
- sender
- e
public virtual void RemoveModel(IDiagramModel model)
undoManager.RemoveModel(model)
调用这种方法通知这个取消管理器, 它将不再被通知模型已改变的事件 。
- model
public bool RollbackTransaction()
result = undoManager.RollbackTransaction()
给String打电话 取消现在的交易
返回值: 字符串的调用值)
protected virtual bool SkipEvent(ModelChangedEventArgs evt)
result = undoManager.SkipEvent(evt)
这个上游负责决定ModelChangedEventArgs是否不够有趣,无法被记录.
- evt
返回值: 通常不正确,因此可以记住给定的事件;但ModelChange的负值计数是真实的。
public virtual bool StartTransaction(string tname)
result = undoManager.StartTransaction(tname)
开始交易, 更改由 CompoundEdit 持有 。
返回值: 启动顶级交易时为真