Sdílet prostřednictvím


Freezable.GetAsFrozenCore(Freezable) Metoda

Definice

Vytvoří instanci jako zmrazený klon zadaného Freezable pomocí základních (neoměněných) hodnot vlastností.

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)

Parametry

sourceFreezable
Freezable

Instance, která se má zkopírovat.

Poznámky

Tato metoda je volána metodou GetAsFrozen a neměla by být volána přímo z kódu, s výjimkou volání základní implementace při přepsání této metody. Chcete-li vytvořit zmrazenou kopii aktuálního objektu, zavolejte GetAsFrozen místo volání této metody přímo.

Poznámky pro dědice

Pokud odvozujete z Freezable , možná budete muset přepsat tuto metodu. Mezi důvody, které je potřeba přepsat, patří:

  • Odvozená třída obsahuje data, která nejsou vystavena prostřednictvím vlastností závislostí.

  • Odvozená třída musí provádět další inicializační práci, kterou nelze provést jednoduše přepsáním CreateInstanceCore(). To platí například v případě, že vaše odvozená třída implementuje ISupportInitialize.

Třídy, které ukládají všechna svá data ve vlastnostech závislostí a které nemusí provádět další inicializační práce, nemusí přepisovat GetAsFrozenCore(Freezable).

Je nezbytné, aby všechny implementace volaly základní implementaci této metody. Implementace by měly provádět pouze práci, která není provedena výchozí implementací. Výchozí implementace vytváří hluboké kopie všech nemrznutelných a mělké kopie všech ostatních zapisovatelných místně nastavených vlastností, které obsahuje. Pokud má objekt vlastnosti závislostí vázané na data, výrazy jsou zkopírovány, ale nemusí již přeložit; Další informace o klonování objektů vázaných na data najdete v tématu Přehled zmrazených objektů. Pokud má objekt animované vlastnosti závislostí, zkopírují se základní (ne animované) hodnoty těchto vlastností. Animace se nekopírují.

Všimněte si, že nenasazené vlastnosti se nekopírují ani nejsou vlastnosti jen pro čtení.

Pokud tuto metodu přepíšete, musíte volat základní implementaci.

Při kopírování hodnot není potřeba Freeze() . Výsledek se před vrácením GetAsFrozen() zamrazí.

Platí pro

Viz také