Freezable.CloneCurrentValueCore(Freezable) Metoda

Definice

Vytvoří instanci upravitelný klon (hloubkovou kopii) zadaného Freezable pomocí aktuálních hodnot vlastností.

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

Parametry

sourceFreezable
Freezable

Naklonováno Freezable .

Poznámky

Tato metoda je volána metodou CloneCurrentValue 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 CloneCurrentValue 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 CloneCurrentValueCore(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 a místně nastavených vlastností. Pokud objekt obsahuje vlastnosti závislostí s výrazy (například datovou vazbou), aktuální hodnota výrazu se zkopíruje, ale ne samotný výraz.

Pokud má objekt animované vlastnosti závislostí, aktuální animovaná hodnota těchto vlastností se zkopíruje, ale animace nejsou.

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í.

  • Pokud je vlastnost animovaný, její aktuální hodnota se zkopíruje, ale samotná animace není.

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

  • Samotná kopie není zmrazená.

Platí pro

Viz také