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,所以只能在設計時間使用。
復原引擎會追蹤交易,並建立包含交易的單一復原單位。 因此,復原引擎可控制可復原動作的持續時間。 此外,因為交易可以命名,所以可復原的動作會繼承其目前交易的名稱。 如果沒有交易可用且回報變更,復原引擎會根據變更類型建立復原名稱 (,例如“Change 屬性 '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 所使用的 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 |
緊接在執行復原動作之後發生。 |