Freezable.CloneCore(Freezable) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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ý chcete 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, místo Clone volání této metody přímo.
Poznámky pro dědice
Pokud jste odvozeni z Freezable, může být nutné přepsat tuto metodu. 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 extra 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 data ve vlastnostech závislosti a které nepotřebují provádět další inicializační práci, nemusí přepisovat 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áří hloubkové kopie všech zapisovatelných, místně nastavených vlastností, včetně interních výrazů.
Pokud objekt obsahuje vlastnosti závislostí vázané na data, výrazy se zkopírují, ale nemusí se 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í, základní (ne animovaný) hodnota těchto vlastností se zkopíruje. Animace se nekopírují.
Všimněte si, že nekopírované vlastnosti nejsou zkopírovány ani vlastnosti jen pro čtení. Pokud má taková 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í této metody:
Kopie vytvořená obsahuje kopie všech Freezable dílčích objektů.
Vlastnosti bez sady a jen pro čtení se nekopírují.
Výrazy se zkopírují.
Žádný z těchto dílčích objektů se při vytváření nezablokuje.
Samotná kopie není zmrazená.
Animace se nekopírují.
Zkopírují se pouze základní hodnoty vlastností, nikoli aktuální animované hodnoty.