Freezable Klasa

Definicja

Definiuje obiekt, który ma stan modyfikowalny i stan tylko do odczytu (zamrożony).Defines an object that has a modifiable state and a read-only (frozen) state. Klasy, które pochodzą od Freezable dostarczania szczegółowego powiadomienia o zmianach, mogą być niezmienne i mogą klonować siebie.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
Dziedziczenie
Pochodne

Uwagi

FreezableKlasa zawiera specjalne funkcje, które mogą pomóc zwiększyć wydajność aplikacji podczas korzystania z obiektów, które są kosztowne do modyfikacji lub kopiowania.The Freezable class provides special features that can help improve application performance when using objects that are expensive to modify or copy. Przykłady Freezable obiektów są następujące:Examples of Freezable objects include the following:

Wyprowadzanie z FreezableDeriving From Freezable

Klasa, która powodzi Freezable się od, uzyskuje następujące funkcje:A class that derives from Freezable gains the following features:

  • Specjalne Stany: stan tylko do odczytu (zablokowany) i stan zapisywalny.Special states: a read-only (frozen) state and a writable state.

  • Bezpieczeństwo wątków: zablokowany Freezable obiekt może być współużytkowany przez wątki.Thread safety: a frozen Freezable object can be shared across threads.

  • Szczegółowe powiadomienie o zmianie: w przeciwieństwie do innych DependencyObject obiektów, Freezable obiekt udostępnia powiadomienia o zmianach po zmianie wartości właściwości podrzędnych.Detailed change notification: Unlike other DependencyObject objects, a Freezable object provides change notifications when sub-property values change.

  • Łatwe Klonowanie: Klasa Freezable już wdrożyła kilka metod, które tworzą głębokie klony.Easy cloning: the Freezable class has already implemented several methods that produce deep clones.

Aby uzyskać informacje na temat używania i tworzenia własnych Freezable obiektów, zobacz Freezable obiektów — Omówienie.For information on using and creating your own Freezable objects, see Freezable Objects Overview.

Konstruktory

Freezable()

Inicjuje nowe wystąpienie Freezable klasy pochodnej.Initializes a new instance of a Freezable derived class.

Właściwości

CanFreeze

Pobiera wartość wskazującą, czy obiekt może być niemodyfikowalny.Gets a value that indicates whether the object can be made unmodifiable.

DependencyObjectType

Pobiera DependencyObjectType , który zawija typ CLR tego wystąpienia.Gets the DependencyObjectType that wraps the CLR type of this instance.

(Odziedziczone po DependencyObject)
Dispatcher

Pobiera Dispatcher ten DispatcherObject program jest skojarzony z.Gets the Dispatcher this DispatcherObject is associated with.

(Odziedziczone po DispatcherObject)
IsFrozen

Pobiera wartość wskazującą, czy obiekt jest obecnie modyfikowalny.Gets a value that indicates whether the object is currently modifiable.

IsSealed

Pobiera wartość wskazującą, czy to wystąpienie jest aktualnie zapieczętowane (tylko do odczytu).Gets a value that indicates whether this instance is currently sealed (read-only).

(Odziedziczone po DependencyObject)

Metody

CheckAccess()

Określa, czy wątek wywołujący ma dostęp do tego DispatcherObject .Determines whether the calling thread has access to this DispatcherObject.

(Odziedziczone po DispatcherObject)
ClearValue(DependencyProperty)

Czyści wartość lokalną właściwości.Clears the local value of a property. Właściwość, która ma zostać wyczyszczona, jest określana przez DependencyProperty Identyfikator.The property to be cleared is specified by a DependencyProperty identifier.

(Odziedziczone po DependencyObject)
ClearValue(DependencyPropertyKey)

Czyści wartość lokalną właściwości tylko do odczytu.Clears the local value of a read-only property. Właściwość, która ma zostać wyczyszczona, jest określana przez DependencyPropertyKey .The property to be cleared is specified by a DependencyPropertyKey.

(Odziedziczone po DependencyObject)
Clone()

Tworzy modyfikowalny klon Freezable , tworząc głębokie kopie wartości obiektu.Creates a modifiable clone of the Freezable, making deep copies of the object's values. Podczas kopiowania właściwości zależności obiektu ta metoda kopiuje wyrażenia (które mogą nie być już rozpoznawane), ale nie animacji ani ich bieżących wartości.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)

Sprawia, że wystąpienie jest klonem (głębokiej kopii) określonej Freezable przy użyciu wartości właściwości Base (Nieanimowane).Makes the instance a clone (deep copy) of the specified Freezable using base (non-animated) property values.

CloneCurrentValue()

Umożliwia utworzenie sklonowanego klonu (głębokiej kopii) Freezable przy użyciu bieżących wartości.Creates a modifiable clone (deep copy) of the Freezable using its current values.

CloneCurrentValueCore(Freezable)

Sprawia, że wystąpienie jest modyfikowalne klonowania (głębokiej kopii) określonej Freezable przy użyciu bieżących wartości właściwości.Makes the instance a modifiable clone (deep copy) of the specified Freezable using current property values.

CoerceValue(DependencyProperty)

Przekształca wartość określonej właściwości zależności.Coerces the value of the specified dependency property. Jest to realizowane przez wywołanie dowolnej CoerceValueCallback funkcji określonej w metadanych właściwości dla właściwości zależności, która istnieje w wywołaniu DependencyObject .This is accomplished by invoking any CoerceValueCallback function specified in property metadata for the dependency property as it exists on the calling DependencyObject.

(Odziedziczone po DependencyObject)
CreateInstance()

Inicjuje nowe wystąpienie klasy Freezable.Initializes a new instance of the Freezable class.

CreateInstanceCore()

Po zaimplementowaniu w klasie pochodnej tworzy nowe wystąpienie Freezable klasy pochodnej.When implemented in a derived class, creates a new instance of the Freezable derived class.

Equals(Object)

Określa, czy podana DependencyObject jest równoważna z bieżącym DependencyObject .Determines whether a provided DependencyObject is equivalent to the current DependencyObject.

(Odziedziczone po DependencyObject)
Freeze()

Sprawia, że bieżący obiekt jest niemodyfikowalny i ustawia jego IsFrozen Właściwość na true .Makes the current object unmodifiable and sets its IsFrozen property to true.

Freeze(Freezable, Boolean)

Jeśli isChecking parametr ma wartość true , ta metoda wskazuje, czy nie Freezable można dokonać edycji określonego.If the isChecking parameter is true, this method indicates whether the specified Freezable can be made unmodifiable. Jeśli isChecking parametr ma wartość false , ta metoda próbuje wprowadzić określone Freezable niemodyfikowalne i wskazuje, czy operacja zakończyła się pomyślnie.If the isChecking parameter is false, this method attempts to make the specified Freezable unmodifiable and indicates whether the operation succeeded.

FreezeCore(Boolean)

Sprawia, że Freezable obiekt jest niemodyfikowalny lub testuje, czy można go nie modyfikować.Makes the Freezable object unmodifiable or tests whether it can be made unmodifiable.

GetAsFrozen()

Tworzy zamrożoną kopię Freezable , używając wartości właściwości Base (Nieanimowane).Creates a frozen copy of the Freezable, using base (non-animated) property values. Ponieważ kopia jest zamrożona, wszelkie zamrożone obiekty podrzędne są kopiowane przez odwołanie.Because the copy is frozen, any frozen sub-objects are copied by reference.

GetAsFrozenCore(Freezable)

Sprawia, że wystąpienie jest zablokowanym klonem określonego Freezable przy użyciu wartości właściwości Base (Nieanimowane).Makes the instance a frozen clone of the specified Freezable using base (non-animated) property values.

GetCurrentValueAsFrozen()

Tworzy zamrożoną kopię z Freezable użyciem bieżących wartości właściwości.Creates a frozen copy of the Freezable using current property values. Ponieważ kopia jest zamrożona, wszelkie zamrożone obiekty podrzędne są kopiowane przez odwołanie.Because the copy is frozen, any frozen sub-objects are copied by reference.

GetCurrentValueAsFrozenCore(Freezable)

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.

GetHashCode()

Pobiera kod skrótu dla tego elementu DependencyObject .Gets a hash code for this DependencyObject.

(Odziedziczone po DependencyObject)
GetLocalValueEnumerator()

Tworzy wyspecjalizowany moduł wyliczający służący do określania, które właściwości zależności mają lokalnie ustawione wartości DependencyObject .Creates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject.

(Odziedziczone po DependencyObject)
GetType()

Pobiera Type bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
GetValue(DependencyProperty)

Zwraca bieżącą obowiązującą wartość właściwości zależności w tym wystąpieniu DependencyObject .Returns the current effective value of a dependency property on this instance of a DependencyObject.

(Odziedziczone po DependencyObject)
InvalidateProperty(DependencyProperty)

Ponowna ocenuje wartość efektywną dla określonej właściwości zależności.Re-evaluates the effective value for the specified dependency property.

(Odziedziczone po DependencyObject)
MemberwiseClone()

Tworzy skróconą kopię bieżącego elementu Object .Creates a shallow copy of the current Object.

(Odziedziczone po Object)
OnChanged()

Wywoływana, gdy bieżący Freezable obiekt jest modyfikowany.Called when the current Freezable object is modified.

OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Zapewnia, że dla DependencyObjectType elementu członkowskiego danych, który został właśnie ustawiony, są ustanowione odpowiednie wskaźniki kontekstu.Ensures that appropriate context pointers are established for a DependencyObjectType data member that has just been set.

OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

Ten element członkowski obsługuje infrastrukturę Windows Presentation Foundation (WPF) i nie jest przeznaczony do użycia bezpośrednio w kodzie.This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code.

OnPropertyChanged(DependencyPropertyChangedEventArgs)

Zastępuje DependencyObject implementację programu, OnPropertyChanged(DependencyPropertyChangedEventArgs) Aby wywołać wszystkie Changed procedury obsługi w odpowiedzi na zmianę właściwości zależności 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)

Zwraca wartość lokalną właściwości zależności, jeśli istnieje.Returns the local value of a dependency property, if it exists.

(Odziedziczone po DependencyObject)
ReadPreamble()

Zapewnia, że Freezable dostęp jest uzyskiwany z prawidłowego wątku.Ensures that the Freezable is being accessed from a valid thread. Dziedziczenia Freezable muszą wywołać tę metodę na początku każdego interfejsu API, który odczytuje składowe danych, które nie są właściwościami zależności.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)

Ustawia wartość właściwości zależności bez zmiany jego źródła wartości.Sets the value of a dependency property without changing its value source.

(Odziedziczone po DependencyObject)
SetValue(DependencyProperty, Object)

Ustawia wartość lokalną właściwości zależności, określoną za pomocą identyfikatora właściwości zależności.Sets the local value of a dependency property, specified by its dependency property identifier.

(Odziedziczone po DependencyObject)
SetValue(DependencyPropertyKey, Object)

Ustawia wartość lokalną właściwości zależności tylko do odczytu, określoną przez DependencyPropertyKey Identyfikator właściwości zależności.Sets the local value of a read-only dependency property, specified by the DependencyPropertyKey identifier of the dependency property.

(Odziedziczone po DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Zwraca wartość wskazującą, czy procesy serializacji powinny serializować wartość dla podanej właściwości zależności.Returns a value that indicates whether serialization processes should serialize the value for the provided dependency property.

(Odziedziczone po DependencyObject)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)
VerifyAccess()

Wymusza, że wątek wywołujący ma dostęp do tego DispatcherObject .Enforces that the calling thread has access to this DispatcherObject.

(Odziedziczone po DispatcherObject)
WritePostscript()

Podnosi Changed zdarzenie dla Freezable i wywołuje jego OnChanged() metodę.Raises the Changed event for the Freezable and invokes its OnChanged() method. Klasy, które pochodzą od Freezable powinny wywołać tę metodę na końcu każdego interfejsu API, który modyfikuje składowe klasy, które nie są przechowywane jako właściwości zależności.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()

Sprawdza, czy Freezable nie jest zablokowany i czy jest dostępny z prawidłowego kontekstu wątku.Verifies that the Freezable is not frozen and that it is being accessed from a valid threading context. Freezable dziedziczenia powinny wywołać tę metodę na początku każdego interfejsu API, który zapisuje dane w elementach członkowskich, które nie są właściwościami zależności.Freezable inheritors should call this method at the beginning of any API that writes to data members that are not dependency properties.

Zdarzenia

Changed

Występuje, gdy Freezable lub obiekt, który zawiera, jest modyfikowany.Occurs when the Freezable or an object it contains is modified.

Dotyczy

Bezpieczeństwo wątkowe

Wszystkie publiczne static elementy członkowskie tego typu są bezpieczne wątkowo.Any public static members of this type are thread safe. Wystąpienia elementów członkowskich nie dają gwarancji bezpieczeństwa wątków.Any instance members are not guaranteed to be thread safe.

Gdy IsFrozen Właściwość ma wartość false , Freezable do obiektu można uzyskać dostęp tylko z wątku, w którym został utworzony.When the IsFrozen property is false, a Freezable object can be accessed only from the thread on which it was created. Próba uzyskania dostępu do niego z innego wątku zgłasza InvalidOperationException .Attempting to access it from another thread throws an InvalidOperationException. InvokeMetody i BeginInvoke zapewniają obsługę kierowania do prawidłowego wątku.The Invoke and BeginInvoke methods provide support for marshaling to the correct thread.

Gdy ich IsFrozen Właściwość to true , Freezable obiekty są wolne od wątku.When their IsFrozen property is true, Freezable objects are free-threaded. Aby uzyskać więcej informacji, zobacz Freezable obiektów — Omówienie.For more information, see Freezable Objects Overview.