Freezable.GetCurrentValueAsFrozenCore(Freezable) メソッド

定義

現在のインスタンスを、指定した Freezableの固定複製にします。 オブジェクトにアニメーション化された依存関係プロパティがある場合は、現在のアニメーション化された値がコピーされます。

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

パラメーター

sourceFreezable
Freezable

コピーして固定する Freezable

注釈

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

注意 (継承者)

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

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

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

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

すべての実装がこのメソッドの基本実装を呼び出す必要があります。 実装では、既定の実装では実行されない作業のみを実行する必要があります。 既定の実装では、Freezable メソッドを使用して新しいCreateInstance()が作成され、そのメソッドに含まれる他のすべての書き込み可能なプロパティのアンフロゼン freezable と浅いコピーの詳細コピーが作成されます。 オブジェクトにデータ バインド依存関係プロパティがある場合、データ バインディングはコピーされますが、解決されない可能性があります。データ バインド オブジェクトの複製の詳細については、「 Freezable オブジェクトの概要」を参照してください。 オブジェクトにアニメーション化された依存関係プロパティがある場合、それらのプロパティの現在のアニメーション化された値はコピーされますが、アニメーションはコピーされません。

Freezable内の読み取り専用の依存関係プロパティは、この既定の実装ではコピーされません。

このメソッドをオーバーライドする場合は、基本実装を呼び出す必要があります。

コピー時に値を Freeze() する必要はありません。 結果は、返される前に GetAsFrozen() によって固定されます。

適用対象

こちらもご覧ください