Freezable.CloneCore(Freezable) メソッド


基本 (アニメーション化されていない) プロパティ値を使用して、インスタンスを、指定した Freezable の複製 (詳細コピー) にします。Makes the instance a clone (deep copy) of the specified Freezable using base (non-animated) property values.

 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)



複製する対象のオブジェクト。The object to clone.


このメソッドは、メソッドによって呼び出され Clone ます。このメソッドをオーバーライドするときに基本実装を呼び出す場合を除き、コードから直接呼び出すことはできません。This method is called by the Clone method and should not be called directly from your code, except when calling the base implementation while overriding this method. 現在のオブジェクトの変更可能なコピーを作成するには、 Clone このメソッドを直接呼び出すのではなく、を呼び出します。To create a modifiable copy of the current object, call Clone instead of calling this method directly.

注意 (継承者)

から派生する場合は Freezable 、このメソッドのオーバーライドが必要になることがあります。If you derive from Freezable, you may need to override this method. オーバーライドする理由は次のとおりです。Reasons to override include the following: -派生クラスに依存関係プロパティを介して公開されていないデータが含まれています。- Your derived class has data that is not exposed via dependency properties.

-派生クラスでは、単にをオーバーライドするだけでは実現できない追加の初期化作業を実行する必要があり CreateInstanceCore() ます。- Your derived class must perform extra initialization work that cannot be accomplished by simply overriding CreateInstanceCore(). たとえば、これは、派生クラスがを実装している場合に適用さ ISupportInitialize れます。For example, this applies if your derived class implements ISupportInitialize.

依存関係プロパティにすべてのデータを格納し、追加の初期化作業を実行する必要がないクラスは、をオーバーライドする必要はありません CloneCore(Freezable)Classes that store all their data in dependency properties and that do not need to perform extra initialization work do not need to override CloneCore(Freezable).

すべての実装がこのメソッドの基本実装を呼び出すことが不可欠です。It is essential that all implementations call the base implementation of this method. 実装では、既定の実装では実行されない作業のみを実行する必要があります。Implementations should only perform work that is not performed by the default implementation. 既定の実装では、内部式を含む、すべての書き込み可能なローカル設定プロパティの詳細コピーが作成されます。The default implementation makes deep copies of all writable, locally set properties, including internal expressions.

オブジェクトにデータバインドの依存関係プロパティがある場合、式はコピーされますが、解決できなくなる可能性があります。If the object has data-bound dependency properties, the expressions are copied but might no longer resolve. データバインドオブジェクトの複製の詳細については、「 Freezable オブジェクトの概要」を参照してください。For more information about cloning data-bound objects, see Freezable Objects Overview. オブジェクトにアニメーションの依存関係プロパティがある場合は、それらのプロパティの基本 (アニメーション化されていない) 値がコピーされます。If the object has animated dependency properties, the base (non-animated) value of those properties is copied. アニメーションはコピーされません。Animations are not copied.

未設定のプロパティはコピーされず、読み取り専用プロパティでもありません。Note that unset properties are not copied, nor are read-only properties. このようなプロパティの既定値が固定されている場合 Freezable 、そのプロパティ値は変更可能な複製でも固定されたままになります。If such a property has a default value that is a frozen Freezable, that property value remains frozen in the otherwise modifiable clone.

次の一覧は、このメソッドの予想される動作をまとめたものです。The following list summarizes the expected behavior for this method: -生成されたコピーには、すべてのサブオブジェクトのコピーが含まれ Freezable ます。- The copy produced contains copies of all Freezable sub-objects.

-未設定のプロパティと読み取り専用プロパティはコピーされません。- Unset and read-only properties are not copied.

-式がコピーされます。- Expressions are copied.

-これらのサブオブジェクトは作成時に固定されません。- None of these sub-objects are frozen on creation.

-コピー自体は固定されていません。- The copy itself is not frozen.

-アニメーションはコピーされません。- Animations are not copied.

-現在のアニメーション値ではなく、プロパティの基本値のみがコピーされます。- Only property base values are copied, not current animated values.