Partilhar via


Freezable.GetCurrentValueAsFrozenCore(Freezable) Método

Definição

Torna a instância atual um clone congelado do Freezable especificado. Se o objeto tiver propriedades de dependência animadas, seus valores animados atuais serã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

sourceFreezable
Freezable

O Freezable a ser copiado e congelado.

Comentários

Esse método é chamado pelo GetCurrentValueAsFrozen método e não deve ser chamado diretamente do código, exceto ao chamar a implementação base durante a substituição desse método. Para criar uma cópia congelada do objeto atual, chame GetCurrentValueAsFrozen em vez de chamar esse método diretamente.

Notas aos Herdeiros

Se você derivar de Freezable, talvez 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 extras não precisam substituir GetCurrentValueAsFrozenCore(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 cria um novo Freezable usando o CreateInstance() método e faz cópias profundas de freezables não descongeladas e cópias superficial de todas as outras propriedades graváveis e definidas localmente que ela contém. Se o objeto tiver propriedades de dependência associadas a dados, as associações de dados serão copiadas, mas talvez não sejam mais resolvidas; para obter mais informações sobre como clonar objetos associados a dados, consulte Visão geral de objetos freezable. Se o objeto tiver propriedades de dependência animadas, o valor animado atual dessas propriedades será copiado, mas as animações não serão.

As propriedades de dependência somente leitura em um Freezable não são copiadas por essa implementação padrão.

Se você substituir esse método, deverá chamar a implementação base.

Você não precisa de valores, Freeze() pois eles são copiados. O resultado é congelado por GetAsFrozen() antes de ser retornado.

Aplica-se a

Confira também