Freezable.CloneCore(Freezable) Método

Definição

Faz com que a instância seja um clone (cópia em profundidade) do Freezable especificado usando valores de propriedade base (não animados).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)

Parâmetros

sourceFreezable
Freezable

O objeto a ser clonado.The object to clone.

Comentários

Esse método é chamado pelo método Clone e não deve ser chamado diretamente do seu código, exceto ao chamar a implementação base ao substituir esse método.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. Para criar uma cópia modificável do objeto atual, chame Clone em vez de chamar esse método diretamente.To create a modifiable copy of the current object, call Clone instead of calling this method directly.

Notas aos Herdeiros

Se você derivar de Freezable, talvez seja necessário substituir esse método.If you derive from Freezable, you may need to override this method. Os motivos para substituição incluem o seguinte:Reasons to override include the following: -Sua classe derivada tem dados que não são expostos por meio de propriedades de dependência.- Your derived class has data that is not exposed via dependency properties.

-Sua classe derivada deve executar um trabalho de inicialização extra que não pode ser realizado simplesmente substituindo CreateInstanceCore().- Your derived class must perform extra initialization work that cannot be accomplished by simply overriding CreateInstanceCore(). Por exemplo, isso se aplica se a classe derivada implementa ISupportInitialize.For example, this applies if your derived class implements ISupportInitialize.

As classes que armazenam todos os seus dados em Propriedades de dependência e que não precisam executar o trabalho de inicialização extra não precisam substituir CloneCore(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 CloneCore(Freezable).

É essencial que todas as implementações chamem a implementação base desse método.It is essential that all implementations call the base implementation of this method. As implementações devem executar apenas o trabalho que não é executado pela implementação padrão.Implementations should only perform work that is not performed by the default implementation. A implementação padrão faz cópias profundas de todas as propriedades graváveis, definidas localmente, incluindo expressões internas.The default implementation makes deep copies of all writable, locally set properties, including internal expressions.

Se o objeto tiver Propriedades de dependência associadas a dados, as expressões serão copiadas, mas poderão não ser mais resolvidas.If the object has data-bound dependency properties, the expressions are copied but might no longer resolve. Para obter mais informações sobre clonagem de objetos vinculados a dados, consulte visão geral de objetos de Freezable.For more information about cloning data-bound objects, see Freezable Objects Overview. Se o objeto tiver Propriedades de dependência animadas, o valor base (não animado) dessas propriedades será copiado.If the object has animated dependency properties, the base (non-animated) value of those properties is copied. As animações não são copiadas.Animations are not copied.

Observe que as propriedades de desdefinição não são copiadas nem propriedades somente leitura.Note that unset properties are not copied, nor are read-only properties. Se tal propriedade tiver um valor padrão que seja um Freezablecongelado, esse valor de propriedade permanecerá congelado no clone, caso contrário, modificável.If such a property has a default value that is a frozen Freezable, that property value remains frozen in the otherwise modifiable clone.

A lista a seguir resume o comportamento esperado para este método:The following list summarizes the expected behavior for this method: -A cópia produzida contém cópias de todos os subobjetos Freezable.- The copy produced contains copies of all Freezable sub-objects.

-As propriedades indefinida e somente leitura não são copiadas.- Unset and read-only properties are not copied.

-As expressões são copiadas.- Expressions are copied.

-Nenhum desses subobjetos é congelado na criação.- None of these sub-objects are frozen on creation.

-A cópia em si não é congelada.- The copy itself is not frozen.

-As animações não são copiadas.- Animations are not copied.

-Somente valores de base de propriedade são copiados, não valores animados atuais.- Only property base values are copied, not current animated values.

Aplica-se a

Veja também