Freezable.GetAsFrozenCore(Freezable) Metodo

Definizione

Rende l'istanza un clone bloccato dell'oggetto Freezable specificato usando i valori di proprietà di base (non animati).Makes the instance a frozen clone of the specified Freezable using base (non-animated) property values.

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

Parametri

sourceFreezable
Freezable

Istanza da copiare.The instance to copy.

Commenti

Questo metodo viene chiamato dal metodo GetAsFrozen e non deve essere chiamato direttamente dal codice, tranne quando si chiama l'implementazione di base mentre si esegue l'override di questo metodo.This method is called by the GetAsFrozen method and should not be called directly from your code, except when calling the base implementation while overriding this method. Per creare una copia bloccata dell'oggetto corrente, chiamare GetAsFrozen anziché chiamare direttamente questo metodo.To create a frozen copy of the current object, call GetAsFrozen instead of calling this method directly.

Note per gli eredi

Se si deriva da Freezable potrebbe essere necessario eseguire l'override di questo metodo.If you derive from Freezable you may need to override this method. I motivi per eseguire l'override includono quanto segue:Reasons to override include the following: -La classe derivata contiene dati non esposti tramite proprietà di dipendenza.- Your derived class has data that is not exposed via dependency properties.

-La classe derivata deve eseguire operazioni di inizializzazione aggiuntive che non possono essere eseguite semplicemente eseguendo l'override CreateInstanceCore().- Your derived class must perform extra initialization work that cannot be accomplished by simply overriding CreateInstanceCore(). Questo vale ad esempio se la classe derivata implementa ISupportInitialize.For example, this applies if your derived class implements ISupportInitialize.

Le classi che archiviano tutti i dati nelle proprietà di dipendenza e che non richiedono l'esecuzione di operazioni di inizializzazione aggiuntive non devono eseguire l'override di GetAsFrozenCore(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 GetAsFrozenCore(Freezable).

È essenziale che tutte le implementazioni chiamino l'implementazione di base di questo metodo.It is essential that all implementations call the base implementation of this method. Le implementazioni devono eseguire solo operazioni non eseguite dall'implementazione predefinita.Implementations should only perform work that is not performed by the default implementation. L'implementazione predefinita esegue copie complete di eventuali Freezable non bloccati e copie superficiali di tutte le altre proprietà impostate in locale che contiene.The default implementation makes deep copies of any unfrozen freezables and shallow copies of all other writable, locally set properties it contains. Se l'oggetto dispone di proprietà di dipendenza associate a dati, le espressioni vengono copiate, ma potrebbero non essere più risolte; Per ulteriori informazioni sulla clonazione di oggetti associati a dati, vedere Cenni preliminari sugli oggetti Freezable.If the object has data-bound dependency properties, the expressions are copied but might no longer resolve; for more information about cloning data-bound objects, see Freezable Objects Overview. Se l'oggetto ha proprietà di dipendenza animate, vengono copiati i valori di base (non animati) di tali proprietà.If the object has animated dependency properties, the base (non-animated) values of those properties are copied. Le animazioni non vengono copiate.Animations are not copied.

Si noti che le proprietà non impostate non vengono copiate, né sono proprietà di sola lettura.Note that unset properties are not copied, nor are read-only properties.

Se si esegue l'override di questo metodo, è necessario chiamare l'implementazione di base.If you do override this method, you must call the base implementation.

Non è necessario Freeze() i valori Man mano che vengono copiati.You do not need to Freeze() values as they are copied. Il risultato viene bloccato da GetAsFrozen() prima della restituzione.The result is frozen by GetAsFrozen() before being returned.

Si applica a

Vedi anche