Freezable.GetCurrentValueAsFrozenCore(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 atual um clone congelado do especificado Freezable. Se o objeto tiver propriedades de dependência animadas, os seus valores animados atuais são copiados.
protected:
virtual void GetCurrentValueAsFrozenCore(System::Windows::Freezable ^ sourceFreezable);
protected virtual void GetCurrentValueAsFrozenCore(System.Windows.Freezable sourceFreezable);
abstract member GetCurrentValueAsFrozenCore : System.Windows.Freezable -> unit
override this.GetCurrentValueAsFrozenCore : System.Windows.Freezable -> unit
Protected Overridable Sub GetCurrentValueAsFrozenCore (sourceFreezable As Freezable)
Parâmetros
Observações
Este método é chamado pelo GetCurrentValueAsFrozen 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 congelada do objeto atual, chame GetCurrentValueAsFrozen 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 GetCurrentValueAsFrozenCore(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 cria um novo Freezable usando o CreateInstance() método e faz cópias profundas de congeláveis não congelados e cópias superficiais de todas as outras propriedades graváveis e localmente definidas que contém. Se o objeto tiver propriedades de dependência limitada a dados, as ligações de dados 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 animado atual dessas propriedades é copiado, mas as animações não.
As propriedades de dependência de apenas leitura dentro de a Freezable não são copiadas por esta implementação predefinida.
Se sobrescreveres este método, tens de chamar a implementação base.
Não precisas de valores Freeze() porque são copiados. O resultado é congelado antes GetAsFrozen() de ser devolvido.