UndoEngine 類別

定義

指定設計階段的一般復原/取消復原功能。

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 需要 ComponentSerializationServiceIComponentChangeService ,所以只能在設計階段使用。

復原引擎會追蹤交易,並建立包含交易的單一復原單位。 因此,復原引擎可控制可復原動作的持續時間。 此外,因為交易可以命名,所以可復原的動作會繼承其目前交易的名稱。 如果沒有交易可用且回報變更,復原引擎會根據變更類型建立復原名稱 (,例如「Change 屬性 'Text'」) 。

建構函式

UndoEngine(IServiceProvider)

初始化 UndoEngine 類別的新執行個體。

屬性

Enabled

啟用或停用 UndoEngine

UndoInProgress

指出復原動作是否在進行中。

方法

AddUndoUnit(UndoEngine+UndoUnit)

UndoEngine.UndoUnit 加入至復原堆疊。

CreateUndoUnit(String, Boolean)

建立新的 UndoEngine.UndoUnit

DiscardUndoUnit(UndoEngine+UndoUnit)

捨棄 UndoEngine.UndoUnit

Dispose()

釋放 UndoEngine 所使用的所有資源。

Dispose(Boolean)

釋放 UndoEngine 所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。

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

緊接在執行復原動作之後發生。

適用於

另請參閱