Freezable Třída

Definice

Definuje objekt, který má upravitelný stav a stav jen pro čtení (zmrazený).Defines an object that has a modifiable state and a read-only (frozen) state. Třídy, které jsou odvozeny z Freezable poskytnutí podrobného oznámení o změně, mohou být provedeny neměnné a mohou naklonovat samy sebe.Classes that derive from Freezable provide detailed change notification, can be made immutable, and can clone themselves.

public ref class Freezable abstract : System::Windows::DependencyObject
public abstract class Freezable : System.Windows.DependencyObject
type Freezable = class
    inherit DependencyObject
Public MustInherit Class Freezable
Inherits DependencyObject
Dědičnost
Odvozené

Poznámky

FreezableTřída poskytuje speciální funkce, které mohou pomoci zlepšit výkon aplikace při použití objektů, které jsou nákladné pro úpravy nebo kopírování.The Freezable class provides special features that can help improve application performance when using objects that are expensive to modify or copy. Mezi příklady Freezable objektů patří následující:Examples of Freezable objects include the following:

Odvození z FreezableDeriving From Freezable

Třída, která je odvozena z Freezable , získá následující funkce:A class that derives from Freezable gains the following features:

  • Speciální stavy: stav jen pro čtení (zmrazeno) a stav zápisu.Special states: a read-only (frozen) state and a writable state.

  • Bezpečnost vlákna: zmrazený Freezable objekt lze sdílet napříč vlákny.Thread safety: a frozen Freezable object can be shared across threads.

  • Podrobné oznámení o změně: na rozdíl od jiných DependencyObject objektů Freezable poskytuje objekt oznámení o změně při změně hodnot dílčí vlastnosti.Detailed change notification: Unlike other DependencyObject objects, a Freezable object provides change notifications when sub-property values change.

  • Snadné klonování: třída Freezable už implementovala několik metod, které vytváří hloubkové klony.Easy cloning: the Freezable class has already implemented several methods that produce deep clones.

Informace o používání a vytváření vlastních Freezable objektů naleznete v tématu Freezable Object Overview.For information on using and creating your own Freezable objects, see Freezable Objects Overview.

Konstruktory

Freezable()

Inicializuje novou instanci Freezable odvozené třídy.Initializes a new instance of a Freezable derived class.

Vlastnosti

CanFreeze

Získá hodnotu, která označuje, zda lze objekt nastavit jako neupravitelný.Gets a value that indicates whether the object can be made unmodifiable.

DependencyObjectType

Získá DependencyObjectType , který zabalí CLRCLR typ této instance.Gets the DependencyObjectType that wraps the CLRCLR type of this instance.

(Zděděno od DependencyObject)
Dispatcher

Získá Dispatcher přidružený k DispatcherObject .Gets the Dispatcher this DispatcherObject is associated with.

(Zděděno od DispatcherObject)
IsFrozen

Získá hodnotu, která označuje, zda je objekt v současné době upravitelný.Gets a value that indicates whether the object is currently modifiable.

IsSealed

Načte hodnotu, která označuje, jestli je tato instance aktuálně zapečetěná (jen pro čtení).Gets a value that indicates whether this instance is currently sealed (read-only).

(Zděděno od DependencyObject)

Metody

CheckAccess()

Určuje, zda má volající vlákno přístup DispatcherObject .Determines whether the calling thread has access to this DispatcherObject.

(Zděděno od DispatcherObject)
ClearValue(DependencyProperty)

Vymaže místní hodnotu vlastnosti.Clears the local value of a property. Vlastnost, která má být vyčištěna, je určena DependencyProperty identifikátorem.The property to be cleared is specified by a DependencyProperty identifier.

(Zděděno od DependencyObject)
ClearValue(DependencyPropertyKey)

Vymaže místní hodnotu vlastnosti jen pro čtení.Clears the local value of a read-only property. Vlastnost, která má být vymazána, je určena parametrem DependencyPropertyKey .The property to be cleared is specified by a DependencyPropertyKey.

(Zděděno od DependencyObject)
Clone()

Vytvoří upravitelný klon Freezable objektu, který vytváří hloubkové kopie hodnot objektu.Creates a modifiable clone of the Freezable, making deep copies of the object's values. Při kopírování vlastností závislosti objektu Tato metoda zkopíruje výrazy (které se už nemusí překládat), ale ne animace nebo jejich aktuální hodnoty.When copying the object's dependency properties, this method copies expressions (which might no longer resolve) but not animations or their current values.

CloneCore(Freezable)

Nastaví instanci jako klon (hlubokou kopii) zadaného Freezable s použitím hodnot vlastnosti Base (neanimovaná).Makes the instance a clone (deep copy) of the specified Freezable using base (non-animated) property values.

CloneCurrentValue()

Vytvoří upravitelný klon (hlubokou kopii) s Freezable použitím jeho aktuálních hodnot.Creates a modifiable clone (deep copy) of the Freezable using its current values.

CloneCurrentValueCore(Freezable)

Převede instanci na upravitelný klon (hlubokou kopii) zadaného Freezable pomocí hodnot aktuální vlastnosti.Makes the instance a modifiable clone (deep copy) of the specified Freezable using current property values.

CoerceValue(DependencyProperty)

Převede hodnotu zadané vlastnosti závislosti.Coerces the value of the specified dependency property. To se provádí vyvoláním jakékoli CoerceValueCallback funkce určené v metadatech vlastnosti pro vlastnost závislosti, protože existuje při volání DependencyObject .This is accomplished by invoking any CoerceValueCallback function specified in property metadata for the dependency property as it exists on the calling DependencyObject.

(Zděděno od DependencyObject)
CreateInstance()

Inicializuje novou instanci Freezable třídy.Initializes a new instance of the Freezable class.

CreateInstanceCore()

Při implementaci v odvozené třídě vytvoří novou instanci Freezable odvozené třídy.When implemented in a derived class, creates a new instance of the Freezable derived class.

Equals(Object)

Určuje, zda je poskytnutý DependencyObject ekvivalent aktuální DependencyObject .Determines whether a provided DependencyObject is equivalent to the current DependencyObject.

(Zděděno od DependencyObject)
Freeze()

Nastaví aktuální objekt jako neupravitelný a nastaví jeho IsFrozen vlastnost na true .Makes the current object unmodifiable and sets its IsFrozen property to true.

Freeze(Freezable, Boolean)

Pokud isChecking je parametr true , tato metoda označuje, zda lze zadanou hodnotu Freezable nastavit jako neupravitelnou.If the isChecking parameter is true, this method indicates whether the specified Freezable can be made unmodifiable. Pokud isChecking je parametr false , tato metoda se pokusí nastavit zadanou Freezable neupravitelnou a označuje, zda operace byla úspěšná.If the isChecking parameter is false, this method attempts to make the specified Freezable unmodifiable and indicates whether the operation succeeded.

FreezeCore(Boolean)

Nastaví Freezable objekt jako neupravitelný nebo otestuje, zda je možné jej nastavit jako neupravitelný.Makes the Freezable object unmodifiable or tests whether it can be made unmodifiable.

GetAsFrozen()

Vytvoří zmrazenou kopii s Freezable použitím základních (neanimovaných) hodnot vlastností.Creates a frozen copy of the Freezable, using base (non-animated) property values. Vzhledem k tomu, že je kopie zmrazena, všechny zmrazené dílčí objekty jsou zkopírovány odkazem.Because the copy is frozen, any frozen sub-objects are copied by reference.

GetAsFrozenCore(Freezable)

Převede instanci zmrazeného klonu určeného Freezable pomocí hodnot základních vlastností (neanimovaných).Makes the instance a frozen clone of the specified Freezable using base (non-animated) property values.

GetCurrentValueAsFrozen()

Vytvoří zmrazenou kopii s Freezable použitím aktuálních hodnot vlastností.Creates a frozen copy of the Freezable using current property values. Vzhledem k tomu, že je kopie zmrazena, všechny zmrazené dílčí objekty jsou zkopírovány odkazem.Because the copy is frozen, any frozen sub-objects are copied by reference.

GetCurrentValueAsFrozenCore(Freezable)

Nastaví aktuální instanci na zmrazený klon zadaného Freezable .Makes the current instance a frozen clone of the specified Freezable. Pokud má objekt animované vlastnosti závislosti, zkopírují se jejich aktuální animované hodnoty.If the object has animated dependency properties, their current animated values are copied.

GetHashCode()

Získá kód hodnoty hash DependencyObject .Gets a hash code for this DependencyObject.

(Zděděno od DependencyObject)
GetLocalValueEnumerator()

Vytvoří specializovaný enumerátor pro zjištění, které vlastnosti závislosti mají lokálně nastavené hodnoty DependencyObject .Creates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject.

(Zděděno od DependencyObject)
GetType()

Získá Type aktuální instanci.Gets the Type of the current instance.

(Zděděno od Object)
GetValue(DependencyProperty)

Vrátí aktuální platnou hodnotu vlastnosti závislosti v této instanci DependencyObject .Returns the current effective value of a dependency property on this instance of a DependencyObject.

(Zděděno od DependencyObject)
InvalidateProperty(DependencyProperty)

Znovu vyhodnotí platnou hodnotu pro zadanou vlastnost závislosti.Re-evaluates the effective value for the specified dependency property.

(Zděděno od DependencyObject)
MemberwiseClone()

Vytvoří kopii aktuálního seznamu Object .Creates a shallow copy of the current Object.

(Zděděno od Object)
OnChanged()

Volá se, když se Freezable změní aktuální objekt.Called when the current Freezable object is modified.

OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Zajišťuje, aby pro DependencyObjectType datový člen, který se právě nastavil, byly navázány vhodné kontextové ukazatele.Ensures that appropriate context pointers are established for a DependencyObjectType data member that has just been set.

OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

Tento člen podporuje Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) infrastrukturu a není určen pro použití přímo v kódu.This member supports the Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code.

OnPropertyChanged(DependencyPropertyChangedEventArgs)

Přepisuje DependencyObject implementaci pro, OnPropertyChanged(DependencyPropertyChangedEventArgs) aby také vyvolala Changed obslužné rutiny v reakci na změněnou vlastnost závislosti typu Freezable .Overrides the DependencyObject implementation of OnPropertyChanged(DependencyPropertyChangedEventArgs) to also invoke any Changed handlers in response to a changing dependency property of type Freezable.

ReadLocalValue(DependencyProperty)

Vrátí místní hodnotu vlastnosti závislosti, pokud existuje.Returns the local value of a dependency property, if it exists.

(Zděděno od DependencyObject)
ReadPreamble()

Zajišťuje, aby Freezable byl přístup z platného vlákna.Ensures that the Freezable is being accessed from a valid thread. Dědice typu Freezable musí volat tuto metodu na začátku libovolného rozhraní API, které čte datové členy, které nejsou vlastnostmi závislosti.Inheritors of Freezable must call this method at the beginning of any API that reads data members that are not dependency properties.

SetCurrentValue(DependencyProperty, Object)

Nastaví hodnotu vlastnosti závislosti beze změny jejího zdroje hodnoty.Sets the value of a dependency property without changing its value source.

(Zděděno od DependencyObject)
SetValue(DependencyProperty, Object)

Nastaví místní hodnotu vlastnosti závislosti určenou identifikátorem vlastnosti závislosti.Sets the local value of a dependency property, specified by its dependency property identifier.

(Zděděno od DependencyObject)
SetValue(DependencyPropertyKey, Object)

Nastaví místní hodnotu vlastnosti závislosti jen pro čtení určenou DependencyPropertyKey identifikátorem vlastnosti závislosti.Sets the local value of a read-only dependency property, specified by the DependencyPropertyKey identifier of the dependency property.

(Zděděno od DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Vrátí hodnotu, která označuje, zda mají procesy serializace serializovat hodnotu pro poskytnutou vlastnost závislosti.Returns a value that indicates whether serialization processes should serialize the value for the provided dependency property.

(Zděděno od DependencyObject)
ToString()

Vrátí řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)
VerifyAccess()

Vynutilo, aby volající vlákno měl přístup DispatcherObject .Enforces that the calling thread has access to this DispatcherObject.

(Zděděno od DispatcherObject)
WritePostscript()

Vyvolá Changed událost pro Freezable a vyvolá jeho OnChanged() metodu.Raises the Changed event for the Freezable and invokes its OnChanged() method. Třídy, které jsou odvozeny z Freezable by měly volat tuto metodu na konci každého rozhraní API, které mění členy třídy, které nejsou uloženy jako vlastnosti závislosti.Classes that derive from Freezable should call this method at the end of any API that modifies class members that are not stored as dependency properties.

WritePreamble()

Ověřuje, že není Freezable zmrazený a že se k němu přistupoval z platného kontextu vlákna.Verifies that the Freezable is not frozen and that it is being accessed from a valid threading context. Freezable dědice by měly volat tuto metodu na začátku každého rozhraní API, které se zapisuje do datových členů, kteří nejsou vlastnostmi závislosti.Freezable inheritors should call this method at the beginning of any API that writes to data members that are not dependency properties.

Události

Changed

Nastane, pokud Freezable se upraví objekt, který obsahuje.Occurs when the Freezable or an object it contains is modified.

Platí pro

Bezpečný přístup z více vláken

Všechny veřejné static členy tohoto typu jsou bezpečné pro přístup z více vláken.Any public static members of this type are thread safe. U členů instancí není zaručena bezpečnost pro přístup z více vláken.Any instance members are not guaranteed to be thread safe.

Pokud IsFrozen je vlastnost false , k Freezable objektu lze přistupovat pouze z vlákna, v němž byl vytvořen.When the IsFrozen property is false, a Freezable object can be accessed only from the thread on which it was created. Při pokusu o přístup z jiného vlákna vyvolá InvalidOperationException .Attempting to access it from another thread throws an InvalidOperationException. InvokeMetody a BeginInvoke poskytují podporu pro zařazování do správného vlákna.The Invoke and BeginInvoke methods provide support for marshaling to the correct thread.

Když IsFrozen je jejich vlastnost true , Freezable objekty jsou bez vlákna.When their IsFrozen property is true, Freezable objects are free-threaded. Další informace najdete v tématu Přehled objektů Freezable.For more information, see Freezable Objects Overview.