Freezable.CloneCore(Freezable) Freezable.CloneCore(Freezable) Freezable.CloneCore(Freezable) Freezable.CloneCore(Freezable) Method

Definizione

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

protected:
 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)

Parametri

sourceFreezable
Freezable Freezable Freezable Freezable

Oggetto da clonare.The object to clone.

Commenti

Questo metodo viene chiamato dal Clone metodo 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 Clone method and should not be called directly from your code, except when calling the base implementation while overriding this method. Per creare una copia modificabile dell'oggetto corrente, chiamare Clone anziché chiamare direttamente questo metodo.To create a modifiable copy of the current object, call Clone 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 CreateInstanceCore()eseguendo l'override di.- 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.

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

È 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 tutte le proprietà scrivibili e impostate localmente, incluse le espressioni interne.The default implementation makes deep copies of all writable, locally set properties, including internal expressions.

Se l'oggetto dispone di proprietà di dipendenza associate a dati, le espressioni vengono copiate, ma potrebbero non essere più risolte.If the object has data-bound dependency properties, the expressions are copied but might no longer resolve. Per ulteriori informazioni sulla clonazione di oggetti associati a dati, vedere Cenni preliminari sugli oggetti Freezable.For more information about cloning data-bound objects, see Freezable Objects Overview. Se l'oggetto ha proprietà di dipendenza animate, viene copiato il valore di base (non animato) di tali proprietà.If the object has animated dependency properties, the base (non-animated) value of those properties is 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 tale proprietà ha un valore predefinito che è bloccato Freezable, il valore della proprietà rimane bloccato nel clone altrimenti modificabile.If such a property has a default value that is a frozen Freezable, that property value remains frozen in the otherwise modifiable clone.

Nell'elenco seguente viene riepilogato il comportamento previsto per questo metodo:The following list summarizes the expected behavior for this method: -La copia prodotta contiene copie di tutti Freezable gli oggetti secondari.- The copy produced contains copies of all Freezable sub-objects.

-Non vengono copiate le proprietà di sola lettura e non impostate.- Unset and read-only properties are not copied.

-Le espressioni vengono copiate.- Expressions are copied.

-Nessuno di questi oggetti secondari è bloccato alla creazione.- None of these sub-objects are frozen on creation.

-La copia non è bloccata.- The copy itself is not frozen.

-Le animazioni non vengono copiate.- Animations are not copied.

-Vengono copiati solo i valori di base delle proprietà, non i valori animati correnti.- Only property base values are copied, not current animated values.

Si applica a

Vedi anche