Freezable Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Definisce un oggetto che ha uno stato modificabile e uno stato di sola lettura (bloccato). Le classi che derivano da Freezable forniscono una notifica dettagliata delle modifiche, possono essere rese non modificabili e possono clonare se stesse.
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 Freezable classe offre funzionalità speciali che consentono di migliorare le prestazioni dell'applicazione quando si usano oggetti costosi per modificare o copiare. Gli esempi di Freezable oggetti includono quanto segue:
Derivazione da freezable
Classe che deriva da Freezable ottiene le funzionalità seguenti:
Stati speciali: uno stato di sola lettura (bloccato) e uno stato scrivibile.
Sicurezza del thread: un oggetto bloccato Freezable può essere condiviso tra thread.
Notifica dettagliata delle modifiche: a differenza di altri DependencyObject oggetti, un Freezable oggetto fornisce notifiche di modifica quando i valori delle proprietà secondarie cambiano.
Clonazione semplice: la classe Freezable ha già implementato diversi metodi che producono cloni profondi.
Per informazioni sull'uso e la creazione di oggetti personalizzati Freezable , vedere Panoramica degli oggetti freezable.
Costruttori
Freezable() |
Inizializza una nuova istanza di una classe derivata Freezable. |
Proprietà
CanFreeze |
Ottiene un valore che indica se l'oggetto può essere impostato come non modificabile. |
DependencyObjectType |
Ottiene l'oggetto DependencyObjectType che esegue il wrapping del tipo CLR di questa istanza. (Ereditato da DependencyObject) |
Dispatcher |
Ottiene l'oggetto Dispatcher associato a DispatcherObject. (Ereditato da DispatcherObject) |
IsFrozen |
Ottiene un valore che indica se l'oggetto è attualmente modificabile. |
IsSealed |
Ottiene un valore che indica se l'istanza è attualmente sealed (di sola lettura). (Ereditato da DependencyObject) |
Metodi
CheckAccess() |
Determina se il thread chiamante ha accesso a DispatcherObject. (Ereditato da DispatcherObject) |
ClearValue(DependencyProperty) |
Cancella il valore locale di una proprietà. La proprietà da cancellare è specificata da un identificatore DependencyProperty. (Ereditato da DependencyObject) |
ClearValue(DependencyPropertyKey) |
Cancella il valore locale di una proprietà di sola lettura. La proprietà da cancellare è specificata da un oggetto DependencyPropertyKey. (Ereditato da DependencyObject) |
Clone() |
Crea un clone modificabile dell'oggetto Freezable, eseguendo copie complete dei valori dell'oggetto. 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. |
CloneCore(Freezable) |
Rende l'istanza un clone (copia completa) dell'oggetto Freezable specificato usando i valori di proprietà di base (non animati). |
CloneCurrentValue() |
Crea un clone modificabile (copia completa) di Freezable utilizzando i valori correnti. |
CloneCurrentValueCore(Freezable) |
Rende l'istanza un clone (copia completa) modificabile dell'oggetto Freezable specificato usando i valori di proprietà correnti. |
CoerceValue(DependencyProperty) |
Assegna forzatamente il valore della proprietà di dipendenza specificata. Questa operazione viene eseguita richiamando qualsiasi funzione CoerceValueCallback specificata nei metadati della proprietà di dipendenza esistente nell'oggetto DependencyObject chiamante. (Ereditato da DependencyObject) |
CreateInstance() |
Inizializza una nuova istanza della classe Freezable. |
CreateInstanceCore() |
Quando è implementato in una classe derivata, crea una nuova istanza della classe derivata Freezable. |
Equals(Object) |
Determina se l'oggetto DependencyObject specificato equivale all'oggetto DependencyObject corrente. (Ereditato da DependencyObject) |
Freeze() |
Rende non modificabile l'oggetto corrente e ne imposta la proprietà IsFrozen su |
Freeze(Freezable, Boolean) |
Se il parametro |
FreezeCore(Boolean) |
Rende immodificabile l'oggetto Freezable o verifica se può essere reso immodificabile. |
GetAsFrozen() |
Crea una copia bloccata di Freezable, utilizzando valori delle proprietà di base (non-animati). Dato che la copia è bloccata, gli oggetti secondari bloccati sono copiati dal riferimento. |
GetAsFrozenCore(Freezable) |
Rende l'istanza un clone bloccato dell'oggetto Freezable specificato usando i valori di proprietà di base (non animati). |
GetCurrentValueAsFrozen() |
Crea una copia bloccata di Freezable utilizzando valori della proprietà correnti. Dato che la copia è bloccata, gli oggetti secondari bloccati sono copiati dal riferimento. |
GetCurrentValueAsFrozenCore(Freezable) |
Rende l'istanza corrente un clone bloccato dell'oggetto Freezable specificato. Se l'oggetto ha proprietà di dipendenza animate, i valori animati correnti vengono copiati. |
GetHashCode() |
Ottiene un codice hash per l'oggetto DependencyObject. (Ereditato da DependencyObject) |
GetLocalValueEnumerator() |
Crea un enumeratore specializzato per determinare le proprietà di dipendenza che presentano valori impostati localmente nell'oggetto DependencyObject. (Ereditato da DependencyObject) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
GetValue(DependencyProperty) |
Restituisce il valore effettivo corrente di una proprietà di dipendenza in questa istanza di DependencyObject. (Ereditato da DependencyObject) |
InvalidateProperty(DependencyProperty) |
Valuta di nuovo il valore effettivo della proprietà di dipendenza specificata. (Ereditato da DependencyObject) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
OnChanged() |
Chiamato quando viene modificato l'oggetto Freezable corrente. |
OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
Assicura che adatti puntatori del contesto siano stabiliti per un membro dati DependencyObjectType che è appena stato impostato. |
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
Questo membro supporta l'infrastruttura Windows Presentation Foundation (WPF) e non deve essere usato direttamente dal codice. |
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. |
ReadLocalValue(DependencyProperty) |
Restituisce il valore locale di una proprietà di dipendenza, se esistente. (Ereditato da DependencyObject) |
ReadPreamble() |
Assicura che l’accesso di Freezable sia stato eseguito da un thread valido. 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. |
SetCurrentValue(DependencyProperty, Object) |
Imposta il valore di una proprietà di dipendenza senza modificare l'origine del valore. (Ereditato da DependencyObject) |
SetValue(DependencyProperty, Object) |
Imposta il valore locale di una proprietà di dipendenza, specificato dal relativo identificatore della proprietà di dipendenza. (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. (Ereditato da DependencyObject) |
ShouldSerializeProperty(DependencyProperty) |
Restituisce un valore che indica se i processi di serializzazione devono serializzare il valore della proprietà di dipendenza specificata. (Ereditato da DependencyObject) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
VerifyAccess() |
Impone che il thread chiamante abbia accesso a DispatcherObject. (Ereditato da DispatcherObject) |
WritePostscript() |
Genera l'evento Changed per Freezable e richiama il metodo OnChanged(). 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. |
WritePreamble() |
Verifica che l'oggetto Freezable non sia bloccato e che l'accesso sia eseguito da un contesto di threading valido. 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. |
Eventi
Changed |
Si verifica quando Freezable o un oggetto che contiene è modificato. |
Si applica a
Thread safety
Tutti i membri pubblici static
di questo tipo sono thread safe. Non è invece garantita la sicurezza dei membri dell'istanza.
Quando la IsFrozen proprietà è false
, è possibile accedere a un Freezable oggetto solo dal thread in cui è stato creato. Il tentativo di accedervi da un altro thread genera un InvalidOperationExceptionoggetto . I Invoke metodi e BeginInvoke forniscono supporto per il marshalling del thread corretto.
Quando la proprietà IsFrozen è true
, Freezable gli oggetti sono senza thread. Per altre informazioni, vedere Cenni preliminari sugli oggetti Freezable.