Freezable.CloneCore(Freezable) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Torna a instância um clone (cópia profunda) dos valores especificados Freezable usando valores 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 clonar.
Observações
Este método é chamado pelo Clone método e não deve ser chamado diretamente do seu código, exceto quando se chama a implementação base enquanto se sobrepõe este método. Para criar uma cópia modificável do objeto atual, chame Clone este método em vez de chamar diretamente.
Notas para Herdeiros
Se derivar de Freezable, pode ser necessário sobrepor este método. As razões para anular incluem as seguintes:
A sua classe derivada tem dados que não são expostos através de propriedades de dependência.
A sua classe derivada deve realizar trabalho extra de inicialização que não pode ser realizado simplesmente sobrescrevendo CreateInstanceCore(). Por exemplo, isto aplica-se se a sua classe derivada implementar ISupportInitialize.
Classes que armazenam todos os seus dados em propriedades de dependência e que não precisam de realizar trabalho extra de inicialização não precisam de sobrescrever CloneCore(Freezable).
É essencial que todas as implementações chamem a implementação base deste método. As implementações só devem realizar trabalho que não seja realizado pela implementação padrão. A implementação padrão faz cópias profundas de todas as propriedades graváveis e localmente definidas, incluindo expressões internas.
Se o objeto tiver propriedades de dependência limitada a dados, as expressões são copiadas mas podem deixar de ser resolvidas. Para mais informações sobre clonagem de objetos ligados a dados, consulte Visão Geral de Objetos Congeláveis. Se o objeto tiver propriedades de dependência animadas, o valor base (não animado) dessas propriedades é copiado. As animações não são copiadas.
Note que as propriedades não definidas não são copiadas, nem as propriedades de apenas leitura. Se tal propriedade tiver um valor padrão que seja um congelado Freezable, esse valor permanece congelado no clone que de outra forma poderia ser modificado.
A lista seguinte resume o comportamento esperado para este método:
A cópia produzida contém cópias de todos os Freezable sub-objetos.
As propriedades de não definir e só leitura não são copiadas.
As expressões são copiadas.
Nenhum destes sub-objetos está congelado na criação.
A cópia em si não está congelada.
As animações não são copiadas.
Apenas os valores base das propriedades são copiados, não os valores animados atuais.