Condividi tramite


Freezable.GetCurrentValueAsFrozenCore(Freezable) Metodo

Definizione

Rende l'istanza corrente un clone bloccato dell'oggetto Freezable specificato. Se l'oggetto ha proprietà di dipendenza animate, i valori animati correnti vengono copiati.

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)

Parametri

sourceFreezable
Freezable

Oggetto Freezable da copiare e bloccare.

Commenti

Questo metodo viene chiamato dal GetCurrentValueAsFrozen metodo e non deve essere chiamato direttamente dal codice, tranne quando si chiama l'implementazione di base durante l'override di questo metodo. Per creare una copia bloccata dell'oggetto corrente, chiamare GetCurrentValueAsFrozen anziché chiamare direttamente questo metodo.

Note per gli eredi

Se si deriva da Freezable, potrebbe essere necessario eseguire l'override di questo metodo. I motivi per eseguire l'override includono quanto segue:

  • La classe derivata contiene dati non esposti tramite proprietà di dipendenza.

  • La classe derivata deve eseguire operazioni di inizializzazione aggiuntive che non possono essere eseguite semplicemente eseguendo l'override di CreateInstanceCore(). Ad esempio, questo vale se la classe derivata implementa ISupportInitialize.

Le classi che archiviano tutti i dati nelle proprietà di dipendenza e che non devono eseguire operazioni di inizializzazione aggiuntive non devono eseguire l'override GetCurrentValueAsFrozenCore(Freezable)di .

È essenziale che tutte le implementazioni chiamino l'implementazione di base di questo metodo. Le implementazioni devono eseguire solo operazioni non eseguite dall'implementazione predefinita. L'implementazione predefinita crea un nuovo Freezable oggetto usando il CreateInstance() metodo e crea copie profonde di freezable non bloccate e copie superficiali di tutte le altre proprietà scrivibili e impostate localmente che contiene. Se l'oggetto dispone di proprietà di dipendenza associate a dati, i data binding vengono copiati ma potrebbero non essere più risolti; per altre informazioni sulla clonazione di oggetti associati a dati, vedere Cenni preliminari sugli oggetti freezable. Se l'oggetto ha proprietà di dipendenza animate, il valore animato corrente di tali proprietà viene copiato, ma le animazioni non sono.

Le proprietà di dipendenza di sola lettura all'interno di un Freezable oggetto non vengono copiate da questa implementazione predefinita.

Se si esegue l'override di questo metodo, è necessario chiamare l'implementazione di base.

Non è necessario che Freeze() i valori vengano copiati. Il risultato viene bloccato prima GetAsFrozen() di essere restituito.

Si applica a

Vedi anche