Freezable Klasse

Definition

Definiert ein Objekt, das einen änderbaren Zustand und einen schreibgeschützten (fixierten) Zustand aufweist.Defines an object that has a modifiable state and a read-only (frozen) state. Von Freezable abgeleitete Klassen stellen detaillierte Änderungsbenachrichtigung bereit, können unveränderlich gemacht werden und sind imstande, sich selbst zu klonen.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
Vererbung
Abgeleitet

Hinweise

Die Freezable-Klasse bietet spezielle Features, mit denen die Anwendungsleistung verbessert werden kann, wenn Objekte verwendet werden, die teuer zu ändern oder zu kopieren sind.The Freezable class provides special features that can help improve application performance when using objects that are expensive to modify or copy. Beispiele für Freezable Objekte sind:Examples of Freezable objects include the following:

Ableiten von einem frei wählbarenDeriving From Freezable

Eine Klasse, die von Freezable abgeleitet wird, erhält die folgenden Features:A class that derives from Freezable gains the following features:

  • Sonderzustände: Schreib geschützter Zustand (eingefroren) und Schreib geschützter Zustand.Special states: a read-only (frozen) state and a writable state.

  • Thread Sicherheit: ein fixierte Freezable Objekt kann über mehrere Threads gemeinsam genutzt werden.Thread safety: a frozen Freezable object can be shared across threads.

  • Ausführliche Änderungs Benachrichtigung: Im Gegensatz zu anderen DependencyObject Objekten stellt ein Freezable-Objekt Änderungs Benachrichtigungen bereit, wenn sich untergeordnete Eigenschaftswerte ändern.Detailed change notification: Unlike other DependencyObject objects, a Freezable object provides change notifications when sub-property values change.

  • Einfaches Klonen: die Klasse, die frei wählbar ist, hat bereits mehrere Methoden implementiert, die Tiefe Klone ergeben.Easy cloning: the Freezable class has already implemented several methods that produce deep clones.

Informationen zum verwenden und Erstellen eigener Freezable Objekte finden Sie unter Übersicht überfrei wählbare Objekte.For information on using and creating your own Freezable objects, see Freezable Objects Overview.

Konstruktoren

Freezable()

Initialisiert eine neue Instanz einer abgeleiteten Freezable-Klasse.Initializes a new instance of a Freezable derived class.

Eigenschaften

CanFreeze

Ruft einen Wert ab, der anzeigt, ob das Objekt als nicht änderbar festgelegt werden kann.Gets a value that indicates whether the object can be made unmodifiable.

DependencyObjectType

Ruft den DependencyObjectType ab, der den CLRCLR-Typ dieser Instanz umschließt.Gets the DependencyObjectType that wraps the CLRCLR type of this instance.

(Geerbt von DependencyObject)
Dispatcher

Ruft den Dispatcher ab, der diesem DispatcherObject zugeordnet ist.Gets the Dispatcher this DispatcherObject is associated with.

(Geerbt von DispatcherObject)
IsFrozen

Ruft einen Wert ab, der angibt, ob das Objekt derzeit geändert werden kann.Gets a value that indicates whether the object is currently modifiable.

IsSealed

Ruft einen Wert ab, der angibt, ob diese Instanz derzeit versiegelt (schreibgeschützt) ist.Gets a value that indicates whether this instance is currently sealed (read-only).

(Geerbt von DependencyObject)

Methoden

CheckAccess()

Bestimmt, ob der aufrufende Thread auf dieses DispatcherObject zugreifen kann.Determines whether the calling thread has access to this DispatcherObject.

(Geerbt von DispatcherObject)
ClearValue(DependencyProperty)

Löscht den lokalen Wert einer Eigenschaft.Clears the local value of a property. Die Eigenschaft, deren Wert gelöscht werden soll, wird durch einen DependencyProperty-Bezeichner angegeben.The property to be cleared is specified by a DependencyProperty identifier.

(Geerbt von DependencyObject)
ClearValue(DependencyPropertyKey)

Löscht den lokalen Wert einer schreibgeschützten Eigenschaft.Clears the local value of a read-only property. Die Eigenschaft, deren Wert gelöscht werden soll, wird durch einen DependencyPropertyKey angegeben.The property to be cleared is specified by a DependencyPropertyKey.

(Geerbt von DependencyObject)
Clone()

Erstellt einen änderbaren Klon des Freezable-Objekts, indem tiefe Kopien der Werte des Objekts erstellt werden.Creates a modifiable clone of the Freezable, making deep copies of the object's values. Beim Kopieren der Abhängigkeitseigenschaften des Objekts kopiert diese Methode Ausdrücke (die möglicherweise nicht mehr aufgelöst werden können), jedoch keine Animationen oder ihre aktuellen Werte.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)

Definiert die Instanz als Klon (tiefe Kopie) des angegebenen Freezable-Elements, indem Basiseigenschaftenwerte (nicht animiert) verwendet werden.Makes the instance a clone (deep copy) of the specified Freezable using base (non-animated) property values.

CloneCurrentValue()

Erstellt einen änderbaren Klon (tiefe Kopie) von Freezable mit den aktuellen Werten.Creates a modifiable clone (deep copy) of the Freezable using its current values.

CloneCurrentValueCore(Freezable)

Macht die Instanz mithilfe aktueller Eigenschaftswerte zu einem Klon (tiefe Kopie) des angegebenen Freezable-Elements, der geändert werden kann.Makes the instance a modifiable clone (deep copy) of the specified Freezable using current property values.

CoerceValue(DependencyProperty)

Erzwingt den Wert der angegebenen Abhängigkeitseigenschaft.Coerces the value of the specified dependency property. Dies erfolgt durch den Aufruf einer beliebigen CoerceValueCallback-Funktion, die in den Metadaten für die Abhängigkeitseigenschaft angegeben ist, während sie beim aufrufenden DependencyObject beendet wird.This is accomplished by invoking any CoerceValueCallback function specified in property metadata for the dependency property as it exists on the calling DependencyObject.

(Geerbt von DependencyObject)
CreateInstance()

Initialisiert eine neue Instanz der Freezable-Klasse.Initializes a new instance of the Freezable class.

CreateInstanceCore()

Erstellt beim Implementieren in einer abgeleiteten Klasse eine neue Instanz der abgeleiteten Freezable-Klasse.When implemented in a derived class, creates a new instance of the Freezable derived class.

Equals(Object)

Bestimmt, ob ein angegebenes DependencyObject dem aktuellen DependencyObject entspricht.Determines whether a provided DependencyObject is equivalent to the current DependencyObject.

(Geerbt von DependencyObject)
Freeze()

Definiert das aktuelle Objekt als nicht änderbar und legt seine IsFrozen-Eigenschaft auf true fest.Makes the current object unmodifiable and sets its IsFrozen property to true.

Freeze(Freezable, Boolean)

Wenn der isChecking-Parameter true ist, gibt diese Methode an, ob das angegebene Freezable als nicht änderbar festgelegt werden kann.If the isChecking parameter is true, this method indicates whether the specified Freezable can be made unmodifiable. Wenn der isChecking-Parameter false ist, versucht diese Methode, das angegebene Freezable als nicht änderbar festzulegen und gibt an, ob der Vorgang erfolgreich ausgeführt wurde.If the isChecking parameter is false, this method attempts to make the specified Freezable unmodifiable and indicates whether the operation succeeded.

FreezeCore(Boolean)

Legt das Freezable-Objekt als nicht änderbar fest oder überprüft, ob es als nicht änderbar festgelegt werden kann.Makes the Freezable object unmodifiable or tests whether it can be made unmodifiable.

GetAsFrozen()

Erstellt eine fixierte Kopie von Freezable mit Basiseigenschaftswerten (nicht animiert).Creates a frozen copy of the Freezable, using base (non-animated) property values. Da die Kopie fixiert ist, werden alle fixierten Unterobjekte als Verweis kopiert.Because the copy is frozen, any frozen sub-objects are copied by reference.

GetAsFrozenCore(Freezable)

Definiert die Instanz als fixierten Klon des angegebenen Freezable-Elements, indem Basiseigenschaftenwerte (nicht animiert) verwendet werden.Makes the instance a frozen clone of the specified Freezable using base (non-animated) property values.

GetCurrentValueAsFrozen()

Erstellt eine fixierte Kopie von Freezable mit aktuellen Eigenschaftswerten.Creates a frozen copy of the Freezable using current property values. Da die Kopie fixiert ist, werden alle fixierten Unterobjekte als Verweis kopiert.Because the copy is frozen, any frozen sub-objects are copied by reference.

GetCurrentValueAsFrozenCore(Freezable)

Legt die aktuelle Instanz als fixierten Klon des angegebenen Freezable fest.Makes the current instance a frozen clone of the specified Freezable. Wenn das Objekt über animierte Abhängigkeitseigenschaften verfügt, werden die aktuellen animierten Werte kopiert.If the object has animated dependency properties, their current animated values are copied.

GetHashCode()

Ruft einen Hashcode für diese DependencyObject ab.Gets a hash code for this DependencyObject.

(Geerbt von DependencyObject)
GetLocalValueEnumerator()

Erstellt einen spezialisierten Enumerator, mit dem bestimmt wird, welche Abhängigkeitseigenschaften dieses DependencyObject über lokal festgelegte Werte verfügen.Creates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject.

(Geerbt von DependencyObject)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
GetValue(DependencyProperty)

Gibt den aktuellen effektiven Wert einer Abhängigkeitseigenschaft für diese Instanz eines DependencyObject zurück.Returns the current effective value of a dependency property on this instance of a DependencyObject.

(Geerbt von DependencyObject)
InvalidateProperty(DependencyProperty)

Wertet den effektiven Wert für die angegebene Abhängigkeitseigenschaft erneut aus.Re-evaluates the effective value for the specified dependency property.

(Geerbt von DependencyObject)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
OnChanged()

Wird aufgerufen, wenn das aktuelle Freezable-Objekt geändert wird.Called when the current Freezable object is modified.

OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Stellt sicher, dass entsprechende Kontextzeiger für einen gerade festgelegten DependencyObjectType-Datenmember eingerichtet werden.Ensures that appropriate context pointers are established for a DependencyObjectType data member that has just been set.

OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

Dieser Member unterstützt die Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)-Infrastruktur und ist nicht für die direkte Verwendung im Code vorgesehen.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)

Überschreibt die DependencyObject-Implementierung von OnPropertyChanged(DependencyPropertyChangedEventArgs), damit in Reaktion auf eine geänderte Abhängigkeitseigenschaft des Typs Freezable auch Changed-Handler aufgerufen werden.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)

Gibt, sofern vorhanden, den lokalen Wert einer Abhängigkeitseigenschaft zurück.Returns the local value of a dependency property, if it exists.

(Geerbt von DependencyObject)
ReadPreamble()

Stellt sicher, dass über einen gültigen Thread auf Freezable zugegriffen wird.Ensures that the Freezable is being accessed from a valid thread. Vererber von Freezable müssen diese Methode am Anfang jeder API aufrufen, die Datenmember liest, bei denen es sich nicht um Abhängigkeitseigenschaften handelt.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)

Legt den Wert einer Abhängigkeitseigenschaft fest, ohne die Wertquelle zu ändern.Sets the value of a dependency property without changing its value source.

(Geerbt von DependencyObject)
SetValue(DependencyProperty, Object)

Legt den lokalen Wert einer Abhängigkeitseigenschaft fest, die über ihren Bezeichner angegeben wird.Sets the local value of a dependency property, specified by its dependency property identifier.

(Geerbt von DependencyObject)
SetValue(DependencyPropertyKey, Object)

Legt den lokalen Wert einer schreibgeschützten Abhängigkeitseigenschaft fest, die durch den DependencyPropertyKey-Bezeichner der Abhängigkeitseigenschaft angegeben ist.Sets the local value of a read-only dependency property, specified by the DependencyPropertyKey identifier of the dependency property.

(Geerbt von DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Gibt einen Wert zurück, der angibt, ob Serialisierungsprozesse den Wert der bereitgestellten Abhängigkeitseigenschaft serialisieren sollen.Returns a value that indicates whether serialization processes should serialize the value for the provided dependency property.

(Geerbt von DependencyObject)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)
VerifyAccess()

Erzwingt, dass der aufrufende Thread auf dieses DispatcherObject zugreifen kann.Enforces that the calling thread has access to this DispatcherObject.

(Geerbt von DispatcherObject)
WritePostscript()

Löst das Changed-Ereignis für das Freezable-Objekt aus und ruft dessen OnChanged()-Methode auf.Raises the Changed event for the Freezable and invokes its OnChanged() method. Klassen, die aus Freezable abgeleitet werden, sollten diese Methode am Ende jeder API aufrufen, die Klassenmember ändert, die nicht als Abhängigkeitseigenschaften gespeichert sind.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()

Stellt sicher, dass das Freezable nicht fixiert ist und dass über einen gültigen Threadkontext darauf zugegriffen wird.Verifies that the Freezable is not frozen and that it is being accessed from a valid threading context. Vererber von Freezable sollten diese Methode am Anfang jeder API aufrufen, die Datenmember schreibt, bei denen es sich nicht um Abhängigkeitseigenschaften handelt.Freezable inheritors should call this method at the beginning of any API that writes to data members that are not dependency properties.

Ereignisse

Changed

Tritt auf, wenn Freezable oder ein darin enthaltenes Objekt geändert wird.Occurs when the Freezable or an object it contains is modified.

Gilt für:

Threadsicherheit

Alle öffentlichen static-Member dieses Typs sind threadsicher.Any public static members of this type are thread safe. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.Any instance members are not guaranteed to be thread safe.

Wenn die IsFrozen-Eigenschaft falseist, kann auf ein Freezable Objekt nur von dem Thread aus zugegriffen werden, für den es erstellt wurde.When the IsFrozen property is false, a Freezable object can be accessed only from the thread on which it was created. Der Versuch, von einem anderen Thread aus darauf zuzugreifen, löst eine InvalidOperationExceptionaus.Attempting to access it from another thread throws an InvalidOperationException. Die Methoden Invoke und BeginInvoke unterstützen das Marshalling zum richtigen Thread.The Invoke and BeginInvoke methods provide support for marshaling to the correct thread.

Wenn die IsFrozen-Eigenschaft trueist, sind Freezable Objekte frei Thread.When their IsFrozen property is true, Freezable objects are free-threaded. Weitere Informationen finden Sie unter der Übersicht über Freezable-Objekte.For more information, see Freezable Objects Overview.