次の方法で共有


Freezable.CloneCore(Freezable) メソッド

定義

基本 (アニメーション化されていない) プロパティ値を使用して、インスタンスを、指定した Freezable の複製 (詳細コピー) にします。

protected:
 virtual void CloneCore(System::Windows::Freezable ^ sourceFreezable);
protected virtual void CloneCore (System.Windows.Freezable sourceFreezable);
abstract member CloneCore : System.Windows.Freezable -> unit
override this.CloneCore : System.Windows.Freezable -> unit
Protected Overridable Sub CloneCore (sourceFreezable As Freezable)

パラメーター

sourceFreezable
Freezable

複製する対象のオブジェクト。

注釈

このメソッドは メソッドによって呼び出され、このメソッドを Clone オーバーライドするときに基本実装を呼び出す場合を除き、コードから直接呼び出さないでください。 現在の オブジェクトの変更可能なコピーを作成するには、このメソッドを直接呼び出す代わりに を呼 Clone び出します。

注意 (継承者)

から Freezable派生する場合は、このメソッドをオーバーライドする必要がある場合があります。 オーバーライドする理由は次のとおりです。

  • 派生クラスには、依存関係プロパティを介して公開されないデータがあります。

  • 派生クラスでは、 をオーバーライドするだけでは実行できない追加の初期化作業を実行する CreateInstanceCore()必要があります。 たとえば、派生クラスが を実装している ISupportInitialize場合、これは適用されます。

すべてのデータを依存関係プロパティに格納し、追加の初期化作業を実行する必要がないクラスは、 をオーバーライド CloneCore(Freezable)する必要はありません。

すべての実装で、このメソッドの基本実装を呼び出す必要があります。 実装では、既定の実装では実行されない作業のみを実行する必要があります。 既定の実装では、内部式を含むすべての書き込み可能でローカルに設定されたプロパティのディープ コピーが作成されます。

オブジェクトにデータ バインド依存関係プロパティがある場合、式はコピーされますが、解決されない可能性があります。 データ バインド オブジェクトの複製の詳細については、「 Freezable オブジェクトの概要」を参照してください。 オブジェクトにアニメーション化された依存関係プロパティがある場合、それらのプロパティの基本 (アニメーション化されていない) 値がコピーされます。 アニメーションはコピーされません。

未設定のプロパティはコピーされず、読み取り専用プロパティでもありません。 このようなプロパティの既定値が固定 Freezableされている場合、そのプロパティ値は、それ以外の変更可能な複製では固定されたままになります。

次の一覧は、このメソッドで想定される動作をまとめたものです。

  • 生成されたコピーには、すべての Freezable サブオブジェクトのコピーが含まれています。

  • 未設定プロパティと読み取り専用プロパティはコピーされません。

  • 式がコピーされます。

  • これらのサブオブジェクトはいずれも作成時に固定されます。

  • コピー自体は固定されていません。

  • アニメーションはコピーされません。

  • プロパティの基本値のみがコピーされ、現在のアニメーション化された値はコピーされません。

適用対象

こちらもご覧ください