Freezable.Clone メソッド

定義

Freezableの変更可能な複製を作成し、オブジェクトの値の詳細コピーを作成します。 オブジェクトの依存関係プロパティをコピーする場合、このメソッドは式をコピーしますが (解決されなくなる可能性があります)、アニメーションやその現在の値はコピーしません。

public:
 System::Windows::Freezable ^ Clone();
public System.Windows.Freezable Clone();
member this.Clone : unit -> System.Windows.Freezable
Public Function Clone () As Freezable

返品

現在のオブジェクトの変更可能な複製。 複製されたオブジェクトのIsFrozen プロパティは、ソースのfalse プロパティがIsFrozenされている場合でもtrueされます。

注釈

Cloneメソッドと CloneCurrentValue メソッドは、固定されたFreezable オブジェクトの変更可能な複製を生成します (このメソッドは、固定されていないオブジェクトFreezable複製することもできます)。 複製は、実質的に現在のオブジェクトのディープ コピーです。

次の表は、 Clone メソッドと CloneCurrentValue メソッドの違いをまとめたものです。

アクション Clone メソッドの動作 CloneCurrentValue メソッドの動作
式を含む依存関係プロパティのコピー 式はコピーされますが、解決されなくなる可能性があります。 詳細については、「Freezable オブジェクトの概要」を参照してください。 式の現在の値はコピーされますが、式自体はコピーされません。
アニメーション化された依存関係プロパティのコピー プロパティの基本 (アニメーション化されていない) 値がコピーされます。 アニメーションはコピーされません。 プロパティの現在のアニメーション値がコピーされます。 アニメーションはコピーされません。

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

スレッド間で Freezable を移動する

このメソッドは、スレッド間で Freezable を移動する場合に便利です。 まず、Freezable メソッドを呼び出して、Freezeを変更不可にします。 これで、別のスレッドが Freezable にアクセスし、アクセスできるローカル Clone を作成できるようになりました。

注意 (継承者)

このメソッドでは、 CloneCore(Freezable) を使用して複製を生成します。 派生クラスでこのメソッドの動作を変更するには、 CloneCore(Freezable) メソッドをオーバーライドします。

適用対象

こちらもご覧ください