Freezable.CloneCore(Freezable) Metoda

Definice

Vytvoří instanci klonem (hloubkovou kopií) zadaného Freezable pomocí základních (ne animovaných) hodnot vlastností.

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)

Parametry

sourceFreezable
Freezable

Objekt, který se má klonovat.

Poznámky

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

Poznámky pro dědice

Pokud jste odvozeni z Freezable, možná budete muset tuto metodu přepsat. Mezi důvody přepsání patří:

  • Vaše odvozená třída obsahuje data, která nejsou vystavena prostřednictvím vlastností závislostí.

  • Odvozená třída musí provádět dodatečné inicializační práce, které 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 data ve vlastnostech závislostí a které nemusí provádět další inicializační práci, nemusí přepsat CloneCore(Freezable).

Je nezbytné, aby všechny implementace volali základní implementaci této metody. Implementace by měly provádět pouze práci, která není provedena ve výchozí implementaci. Výchozí implementace vytváří hluboké kopie všech zapisovatelných, místně nastavených vlastností, včetně interních výrazů.

Pokud má objekt vlastnosti závislostí vázané na data, výrazy se zkopírují, ale nemusí se už přeložit. Další informace o klonování objektů vázaných na data naleznete v tématu Přehled zamrznutelných objektů. Pokud má objekt animované vlastnosti závislostí, zkopíruje se základní (ne animovaný) hodnota těchto vlastností. Animace se nekopírují.

Všimněte si, že nekopírované vlastnosti nejsou zkopírovány ani vlastnosti jen pro čtení. Pokud má tato vlastnost výchozí hodnotu, která je zmrazena Freezable, tato hodnota vlastnosti zůstane ukotvena v jinak upravitelné klonu.

Následující seznam shrnuje očekávané chování pro tuto metodu:

  • Kopie vytvořená obsahuje kopie všech Freezable dílčích objektů.

– Nekopírované vlastnosti a vlastnosti jen pro čtení.

  • Výrazy se zkopírují.

  • Žádné z těchto dílčích objektů se při vytváření nezablokují.

  • Samotná kopie není zmrazená.

  • Animace se nekopírují.

  • Zkopírují se pouze základní hodnoty vlastností, nikoli aktuální animované hodnoty.

Platí pro

Viz také