Freezable.GetCurrentValueAsFrozenCore(Freezable) Metoda

Definicja

Sprawia, że bieżące wystąpienie jest zablokowanym klonem określonego Freezable.Makes the current instance a frozen clone of the specified Freezable. Jeśli obiekt ma animowane właściwości zależności, ich bieżące wartości animowane są kopiowane.If the object has animated dependency properties, their current animated values are copied.

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

Parametry

sourceFreezable
Freezable

Freezable do skopiowania i zablokowania.The Freezable to copy and freeze.

Uwagi

Ta metoda jest wywoływana przez metodę GetCurrentValueAsFrozen i nie powinna być wywoływana bezpośrednio z kodu, chyba że podczas wywoływania implementacji podstawowej podczas zastępowania tej metody.This method is called by the GetCurrentValueAsFrozen method and should not be called directly from your code, except when calling the base implementation while overriding this method. Aby utworzyć zamrożoną kopię bieżącego obiektu, wywołaj GetCurrentValueAsFrozen zamiast bezpośrednio wywołać tę metodę.To create a frozen copy of the current object, call GetCurrentValueAsFrozen instead of calling this method directly.

Uwagi dotyczące dziedziczenia

Jeśli pochodzą z Freezable, może być konieczne zastąpienie tej metody.If you derive from Freezable, you may need to override this method. Przyczyny zastąpienia obejmują następujące elementy:Reasons to override include the following: -Klasa pochodna ma dane, które nie są udostępniane za pośrednictwem właściwości zależności.- Your derived class has data that is not exposed via dependency properties.

-Klasa pochodna musi wykonywać dodatkowe czynności inicjacji, których nie można osiągnąć przez po prostu zastąpienie CreateInstanceCore().- Your derived class must perform extra initialization work that cannot be accomplished by simply overriding CreateInstanceCore(). Na przykład ma to zastosowanie, jeśli Klasa pochodna implementuje ISupportInitialize.For example, this applies if your derived class implements ISupportInitialize.

Klasy, w których są przechowywane wszystkie dane we właściwościach zależności, które nie muszą wykonywać dodatkowej pracy inicjującej, nie muszą przesłonić GetCurrentValueAsFrozenCore(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 GetCurrentValueAsFrozenCore(Freezable).

Należy koniecznie, aby wszystkie implementacje wywoływały podstawową implementację tej metody.It is essential that all implementations call the base implementation of this method. Implementacje powinny wykonywać wyłącznie zadania, które nie są wykonywane przez implementację domyślną.Implementations should only perform work that is not performed by the default implementation. Domyślna implementacja tworzy nowe Freezable przy użyciu metody CreateInstance() i tworzy głębokie kopie niezamrożonych obiektów Freezable platformie i kopii wszystkich innych zapisywalnych, lokalnie ustawionych właściwości, które zawiera.The default implementation creates a new Freezable using the CreateInstance() method and makes deep copies of unfrozen freezables and shallow copies of all other writable, locally set properties it contains. Jeśli obiekt ma właściwości zależności powiązane z danymi, powiązania danych są kopiowane, ale mogą nie być już rozpoznawane; Aby uzyskać więcej informacji na temat klonowania obiektów powiązanych z danymi, zobacz Freezable obiektów — Omówienie.If the object has data-bound dependency properties, the data bindings are copied but might no longer resolve; for more information about cloning data-bound objects, see Freezable Objects Overview. Jeśli obiekt ma animowane właściwości zależności, bieżąca animowana wartość tych właściwości jest kopiowana, ale animacje nie są.If the object has animated dependency properties, the current animated value of those properties is copied, but the animations are not.

Właściwości zależności tylko do odczytu w ramach Freezable nie są kopiowane przez tę implementację domyślną.Read-only dependency properties within a Freezable are not copied by this default implementation.

W przypadku zastąpienia tej metody należy wywołać implementację podstawową.If you do override this method, you must call the base implementation.

Nie trzeba Freeze() wartości podczas ich kopiowania.You do not need to Freeze() values as they are copied. Wynik jest zamrożony przez GetAsFrozen() przed zwróceniem.The result is frozen by GetAsFrozen() before being returned.

Dotyczy

Zobacz też