Freezable.CloneCore(Freezable) Metodo

Definizione

Rende l'istanza un clone (copia completa) dell'oggetto Freezable specificato usando i valori di proprietà di base (non animati).

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

Oggetto da clonare.

Commenti

Questo metodo viene chiamato dal Clone 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 modificabile dell'oggetto corrente, chiamare Clone invece di 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 include 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(). Si applica, ad esempio, 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 CloneCore(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 esegue copie approfondite di tutte le proprietà scrivibili, impostate in locale, incluse le espressioni interne.

Se l'oggetto ha proprietà di dipendenza associata a dati, le espressioni vengono copiate ma potrebbero non essere più risolte. Per altre informazioni sulla clonazione di oggetti associati ai dati, vedere Panoramica degli oggetti freezable. Se l'oggetto ha proprietà di dipendenza animata, il valore di base (non animato) di tali proprietà viene copiato. Le animazioni non vengono copiate.

Si noti che le proprietà unset non vengono copiate né sono proprietà di sola lettura. Se tale proprietà ha un valore predefinito che è un valore bloccato Freezable, tale valore di proprietà rimane bloccato nel clone modificabile in caso contrario.

L'elenco seguente riepiloga il comportamento previsto per questo metodo:

  • La copia prodotta contiene copie di tutti gli Freezable oggetti secondari.

  • Le proprietà di sola lettura e non vengono copiate.

  • Le espressioni vengono copiate.

  • Nessuno di questi oggetti secondari viene bloccato nella creazione.

  • La copia stessa non è bloccata.

  • Le animazioni non vengono copiate.

  • Vengono copiati solo i valori di base delle proprietà, non i valori animati correnti.

Si applica a

Vedi anche