Freezable Classe

Definizione

Definisce un oggetto che ha uno stato modificabile e uno stato di sola lettura (bloccato).Defines an object that has a modifiable state and a read-only (frozen) state. Le classi che derivano da Freezable forniscono una notifica dettagliata delle modifiche, possono essere rese non modificabili e possono clonare se stesse.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
Ereditarietà
Derivato

Commenti

La classe Freezable fornisce funzionalità speciali che consentono di migliorare le prestazioni dell'applicazione quando si utilizzano oggetti costosi da modificare o copiare.The Freezable class provides special features that can help improve application performance when using objects that are expensive to modify or copy. Di seguito sono riportati alcuni esempi di oggetti Freezable:Examples of Freezable objects include the following:

Derivazione da FreezableDeriving From Freezable

Una classe che deriva da Freezable acquisisce le funzionalità seguenti:A class that derives from Freezable gains the following features:

  • Stati speciali: stato di sola lettura (bloccato) e stato accessibile in scrittura.Special states: a read-only (frozen) state and a writable state.

  • Thread safety: un oggetto Freezable bloccato può essere condiviso tra thread.Thread safety: a frozen Freezable object can be shared across threads.

  • Notifica dettagliata delle modifiche: A differenza di altri oggetti DependencyObject, un oggetto Freezable fornisce notifiche di modifica quando cambiano i valori delle sottoproprietà.Detailed change notification: Unlike other DependencyObject objects, a Freezable object provides change notifications when sub-property values change.

  • Clonazione semplice: la classe Freezable ha già implementato diversi metodi che producono cloni profondi.Easy cloning: the Freezable class has already implemented several methods that produce deep clones.

Per informazioni sull'uso e la creazione di oggetti Freezable personalizzati, vedere Cenni preliminari sugli oggetti Freezable.For information on using and creating your own Freezable objects, see Freezable Objects Overview.

Costruttori

Freezable()

Inizializza una nuova istanza di una classe derivata Freezable.Initializes a new instance of a Freezable derived class.

Proprietà

CanFreeze

Ottiene un valore che indica se l'oggetto può essere impostato come non modificabile.Gets a value that indicates whether the object can be made unmodifiable.

DependencyObjectType

Ottiene la classe DependencyObjectType che include il tipo CLRCLR di questa istanza.Gets the DependencyObjectType that wraps the CLRCLR type of this instance.

(Ereditato da DependencyObject)
Dispatcher

Ottiene l'oggetto Dispatcher associato a DispatcherObject.Gets the Dispatcher this DispatcherObject is associated with.

(Ereditato da DispatcherObject)
IsFrozen

Ottiene un valore che indica se l'oggetto è attualmente modificabile.Gets a value that indicates whether the object is currently modifiable.

IsSealed

Ottiene un valore che indica se l'istanza è attualmente sealed (di sola lettura).Gets a value that indicates whether this instance is currently sealed (read-only).

(Ereditato da DependencyObject)

Metodi

CheckAccess()

Determina se il thread chiamante ha accesso a DispatcherObject.Determines whether the calling thread has access to this DispatcherObject.

(Ereditato da DispatcherObject)
ClearValue(DependencyProperty)

Cancella il valore locale di una proprietà.Clears the local value of a property. La proprietà da cancellare è specificata da un identificatore DependencyProperty.The property to be cleared is specified by a DependencyProperty identifier.

(Ereditato da DependencyObject)
ClearValue(DependencyPropertyKey)

Cancella il valore locale di una proprietà di sola lettura.Clears the local value of a read-only property. La proprietà da cancellare è specificata da un oggetto DependencyPropertyKey.The property to be cleared is specified by a DependencyPropertyKey.

(Ereditato da DependencyObject)
Clone()

Crea un clone modificabile dell'oggetto Freezable, eseguendo copie complete dei valori dell'oggetto.Creates a modifiable clone of the Freezable, making deep copies of the object's values. Durante la copia delle proprietà di dipendenza di questo oggetto, questo metodo copia le espressioni (che potrebbero non essere più risolte), ma non le animazioni né i relativi valori correnti.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)

Rende l'istanza un clone (copia completa) dell'oggetto Freezable specificato usando i valori di proprietà di base (non animati).Makes the instance a clone (deep copy) of the specified Freezable using base (non-animated) property values.

CloneCurrentValue()

Crea un clone modificabile (copia completa) di Freezable utilizzando i valori correnti.Creates a modifiable clone (deep copy) of the Freezable using its current values.

CloneCurrentValueCore(Freezable)

Rende l'istanza un clone (copia completa) modificabile dell'oggetto Freezable specificato usando i valori di proprietà correnti.Makes the instance a modifiable clone (deep copy) of the specified Freezable using current property values.

CoerceValue(DependencyProperty)

Assegna forzatamente il valore della proprietà di dipendenza specificata.Coerces the value of the specified dependency property. Questa operazione viene eseguita richiamando qualsiasi funzione CoerceValueCallback specificata nei metadati della proprietà di dipendenza esistente nell'oggetto DependencyObject chiamante.This is accomplished by invoking any CoerceValueCallback function specified in property metadata for the dependency property as it exists on the calling DependencyObject.

(Ereditato da DependencyObject)
CreateInstance()

Inizializza una nuova istanza della classe Freezable.Initializes a new instance of the Freezable class.

CreateInstanceCore()

Quando è implementato in una classe derivata, crea una nuova istanza della classe derivata Freezable.When implemented in a derived class, creates a new instance of the Freezable derived class.

Equals(Object)

Determina se l'oggetto DependencyObject specificato equivale all'oggetto DependencyObject corrente.Determines whether a provided DependencyObject is equivalent to the current DependencyObject.

(Ereditato da DependencyObject)
Freeze()

Rende non modificabile l'oggetto corrente e ne imposta la proprietà IsFrozen su true.Makes the current object unmodifiable and sets its IsFrozen property to true.

Freeze(Freezable, Boolean)

Se il parametro isChecking è true, questo metodo indica se è possibile rendere immodificabile Freezable specificato.If the isChecking parameter is true, this method indicates whether the specified Freezable can be made unmodifiable. Se il parametro isChecking è false, questo metodo tenta di rendere immodificabile il Freezable specificato e indica se l'operazione è riuscita.If the isChecking parameter is false, this method attempts to make the specified Freezable unmodifiable and indicates whether the operation succeeded.

FreezeCore(Boolean)

Rende immodificabile l'oggetto Freezable o verifica se può essere reso immodificabile.Makes the Freezable object unmodifiable or tests whether it can be made unmodifiable.

GetAsFrozen()

Crea una copia bloccata di Freezable, utilizzando valori delle proprietà di base (non-animati).Creates a frozen copy of the Freezable, using base (non-animated) property values. Dato che la copia è bloccata, gli oggetti secondari bloccati sono copiati dal riferimento.Because the copy is frozen, any frozen sub-objects are copied by reference.

GetAsFrozenCore(Freezable)

Rende l'istanza un clone bloccato dell'oggetto Freezable specificato usando i valori di proprietà di base (non animati).Makes the instance a frozen clone of the specified Freezable using base (non-animated) property values.

GetCurrentValueAsFrozen()

Crea una copia bloccata di Freezable utilizzando valori della proprietà correnti.Creates a frozen copy of the Freezable using current property values. Dato che la copia è bloccata, gli oggetti secondari bloccati sono copiati dal riferimento.Because the copy is frozen, any frozen sub-objects are copied by reference.

GetCurrentValueAsFrozenCore(Freezable)

Rende l’istanza corrente una copia bloccata di Freezablespecificato.Makes the current instance a frozen clone of the specified Freezable. Se l'oggetto ha proprietà di dipendenza animate, i valori animati correnti vengono copiati.If the object has animated dependency properties, their current animated values are copied.

GetHashCode()

Ottiene un codice hash per l'oggetto DependencyObject.Gets a hash code for this DependencyObject.

(Ereditato da DependencyObject)
GetLocalValueEnumerator()

Crea un enumeratore specializzato per determinare le proprietà di dipendenza che presentano valori impostati localmente nell'oggetto DependencyObject.Creates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject.

(Ereditato da DependencyObject)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
GetValue(DependencyProperty)

Restituisce il valore effettivo corrente di una proprietà di dipendenza in questa istanza di DependencyObject.Returns the current effective value of a dependency property on this instance of a DependencyObject.

(Ereditato da DependencyObject)
InvalidateProperty(DependencyProperty)

Valuta di nuovo il valore effettivo della proprietà di dipendenza specificata.Re-evaluates the effective value for the specified dependency property.

(Ereditato da DependencyObject)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
OnChanged()

Chiamato quando viene modificato l'oggetto Freezable corrente.Called when the current Freezable object is modified.

OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Assicura che adatti puntatori del contesto siano stabiliti per un membro dati DependencyObjectType che è appena stato impostato.Ensures that appropriate context pointers are established for a DependencyObjectType data member that has just been set.

OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

Questo membro supporta l'infrastruttura di Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) e non deve essere usato direttamente dal codice.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)

Esegue l'override dell'implementazione di DependencyObject di OnPropertyChanged(DependencyPropertyChangedEventArgs) per richiamare anche eventuali gestori Changed in risposta alla modifica di una proprietà di dipendenza di tipo 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)

Restituisce il valore locale di una proprietà di dipendenza, se esistente.Returns the local value of a dependency property, if it exists.

(Ereditato da DependencyObject)
ReadPreamble()

Assicura che l’accesso di Freezable sia stato eseguito da un thread valido.Ensures that the Freezable is being accessed from a valid thread. Gli eredi di Freezable devono chiamare questo metodo all'inizio di qualsiasi API che legge i membri dei dati che non sono proprietà della dipendenza.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)

Imposta il valore di una proprietà di dipendenza senza modificare l'origine del valore.Sets the value of a dependency property without changing its value source.

(Ereditato da DependencyObject)
SetValue(DependencyProperty, Object)

Imposta il valore locale di una proprietà di dipendenza, specificato dal relativo identificatore della proprietà di dipendenza.Sets the local value of a dependency property, specified by its dependency property identifier.

(Ereditato da DependencyObject)
SetValue(DependencyPropertyKey, Object)

Imposta il valore locale di una proprietà di dipendenza di sola lettura, specificato dall'identificatore DependencyPropertyKey della proprietà di dipendenza.Sets the local value of a read-only dependency property, specified by the DependencyPropertyKey identifier of the dependency property.

(Ereditato da DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Restituisce un valore che indica se i processi di serializzazione devono serializzare il valore della proprietà di dipendenza specificata.Returns a value that indicates whether serialization processes should serialize the value for the provided dependency property.

(Ereditato da DependencyObject)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)
VerifyAccess()

Impone che il thread chiamante abbia accesso a DispatcherObject.Enforces that the calling thread has access to this DispatcherObject.

(Ereditato da DispatcherObject)
WritePostscript()

Genera l'evento Changed per Freezable e richiama il metodo OnChanged().Raises the Changed event for the Freezable and invokes its OnChanged() method. Le classi che derivano da Freezable devono chiamare questo metodo alla fine di qualsiasi API che modifica i membri di classe che non sono archiviati come proprietà di dipendenza.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()

Verifica che l'oggetto Freezable non sia bloccato e che l'accesso sia eseguito da un contesto di threading valido.Verifies that the Freezable is not frozen and that it is being accessed from a valid threading context. Gli eredi di Freezable devono chiamare questo metodo all'inizio di qualsiasi API che scrive sui membri dei dati che non sono proprietà della dipendenza.Freezable inheritors should call this method at the beginning of any API that writes to data members that are not dependency properties.

Eventi

Changed

Si verifica quando Freezable o un oggetto che contiene è modificato.Occurs when the Freezable or an object it contains is modified.

Si applica a

Thread safety

Tutti i membri di static pubblici di questo tipo sono thread-safe.Any public static members of this type are thread safe. I membri di istanza non sono garantiti come thread-safe.Any instance members are not guaranteed to be thread safe.

Quando la proprietà IsFrozen è false, è possibile accedere a un oggetto Freezable solo dal thread in cui è stato creato.When the IsFrozen property is false, a Freezable object can be accessed only from the thread on which it was created. Il tentativo di accedere a esso da un altro thread genera un'InvalidOperationException.Attempting to access it from another thread throws an InvalidOperationException. I metodi Invoke e BeginInvoke forniscono supporto per il marshalling nel thread corretto.The Invoke and BeginInvoke methods provide support for marshaling to the correct thread.

Quando la proprietà IsFrozen è true, Freezable oggetti sono a thread libero.When their IsFrozen property is true, Freezable objects are free-threaded. Per altre informazioni, vedere Cenni preliminari sugli oggetti Freezable.For more information, see Freezable Objects Overview.