Freezable.GetAsFrozenCore(Freezable) Método

Definição

Torna a instância um clone congelado do Freezable especificado usando valores de propriedade base (não animados).Makes the instance a frozen clone of the specified Freezable using base (non-animated) property values.

protected:
 virtual void GetAsFrozenCore(System::Windows::Freezable ^ sourceFreezable);
protected virtual void GetAsFrozenCore (System.Windows.Freezable sourceFreezable);
abstract member GetAsFrozenCore : System.Windows.Freezable -> unit
override this.GetAsFrozenCore : System.Windows.Freezable -> unit
Protected Overridable Sub GetAsFrozenCore (sourceFreezable As Freezable)

Parâmetros

sourceFreezable
Freezable

A instância a ser copiada.The instance to copy.

Comentários

Esse método é chamado pelo método GetAsFrozen 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 GetAsFrozen 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 congelada do objeto atual, chame GetAsFrozen em vez de chamar esse método diretamente.To create a frozen copy of the current object, call GetAsFrozen 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 GetAsFrozenCore(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 GetAsFrozenCore(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 todos os Freezables descongelados e cópias superficiais de todas as outras propriedades graváveis e definidas localmente que ele contém.The default implementation makes deep copies of any unfrozen freezables and shallow copies of all other writable, locally set properties it contains. 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; para obter mais informações sobre clonagem de objetos vinculados a dados, consulte visão geral de objetos de Freezable.If the object has data-bound dependency properties, the expressions are copied but might no longer resolve; for more information about cloning data-bound objects, see Freezable Objects Overview. Se o objeto tiver Propriedades de dependência animadas, os valores base (não animados) dessas propriedades serão copiados.If the object has animated dependency properties, the base (non-animated) values of those properties are 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 você substituir esse método, deverá chamar a implementação base.If you do override this method, you must call the base implementation.

Você não precisa Freeze() valores conforme eles são copiados.You do not need to Freeze() values as they are copied. O resultado é congelado por GetAsFrozen() antes de ser retornado.The result is frozen by GetAsFrozen() before being returned.

Aplica-se a

Veja também