Partilhar via


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).

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.

Comentários

Esse método é chamado pelo Clone método e não deve ser chamado diretamente do código, exceto ao chamar a implementação base ao substituir esse método. Para criar uma cópia modificável do objeto atual, chame Clone em vez de chamar esse método diretamente.

Notas aos Herdeiros

Se você derivar, Freezabletalvez seja necessário substituir esse método. Os motivos para substituir incluem o seguinte:

  • Sua classe derivada tem dados que não são expostos por meio de propriedades de dependência.

  • Sua classe derivada deve executar um trabalho de inicialização extra que não pode ser realizado simplesmente substituindo CreateInstanceCore(). Por exemplo, isso se aplica se sua classe derivada implementa ISupportInitialize.

Classes que armazenam todos os dados em propriedades de dependência e que não precisam executar trabalhos de inicialização extra não precisam substituir CloneCore(Freezable).

É essencial que todas as implementações chamem a implementação base desse método. As implementações só devem executar trabalhos que não são executados pela implementação padrão. A implementação padrão faz cópias profundas de todas as propriedades graváveis e definidas localmente, incluindo expressões internas.

Se o objeto tiver propriedades de dependência associadas a dados, as expressões serão copiadas, mas talvez não sejam mais resolvidas. Para obter mais informações sobre a clonagem de objetos associados a dados, consulte Visão geral dos objetos freezable. Se o objeto tiver propriedades de dependência animadas, o valor base (não animado) dessas propriedades será copiado. As animações não são copiadas.

Observe que as propriedades não definidos não são copiadas nem são propriedades somente leitura. Se essa propriedade tiver um valor padrão congelado Freezable, esse valor de propriedade permanecerá congelado no clone modificável de outra forma.

A lista a seguir resume o comportamento esperado para este método:

  • A cópia produzida contém cópias de todos os Freezable sub-objetos.

  • As propriedades unset e somente leitura não são copiadas.

  • As expressões são copiadas.

  • Nenhum desses sub-objetos está congelado na criação.

  • A cópia em si não está congelada.

  • As animações não são copiadas.

  • Somente valores base de propriedade são copiados, não valores animados atuais.

Aplica-se a

Confira também