英語で読む

次の方法で共有


Freezable.CloneCurrentValueCore(Freezable) メソッド

定義

現在のプロパティ値を使用して、インスタンスを、指定した Freezable の変更可能な複製 (詳細コピー) にします。

C#
protected virtual void CloneCurrentValueCore(System.Windows.Freezable sourceFreezable);

パラメーター

sourceFreezable
Freezable

複製する Freezable

注釈

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

注意 (継承者)

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

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

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

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

すべての実装で、このメソッドの基本実装を呼び出す必要があります。 実装では、既定の実装では実行されない作業のみを実行する必要があります。 既定の実装では、すべての書き込み可能でローカルに設定されたプロパティのディープ コピーが作成されます。 オブジェクトに式 (データ バインディングなど) を含む依存関係プロパティが含まれている場合、式の現在の値はコピーされますが、式自体はコピーされません。

オブジェクトにアニメーション化された依存関係プロパティがある場合、それらのプロパティの現在のアニメーション値はコピーされますが、アニメーションはコピーされません。

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

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

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

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

  • プロパティがアニメーション化されている場合、その現在の値はコピーされますが、アニメーション自体はコピーされません。

  • これらのサブオブジェクトは、作成時に固定されません。

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

適用対象

製品 バージョン
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

こちらもご覧ください