Freezable Klasa

Definicja

Definiuje obiekt, który ma stan modyfikowalny i stan tylko do odczytu (zamrożony). Klasy pochodzące z Freezable dostarczania szczegółowego powiadomienia o zmianie mogą być modyfikowalne i mogą się klonować.

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

Klasa Freezable udostępnia specjalne funkcje, które mogą pomóc zwiększyć wydajność aplikacji w przypadku używania obiektów, które są kosztowne do modyfikowania lub kopiowania. Freezable Przykłady obiektów obejmują następujące elementy:

Wyprowadzanie z zamrażalnego

Klasa, która pochodzi z Freezable zysków następujących cech:

  • Stany specjalne: stan tylko do odczytu (zamrożony) i stan zapisywalny.

  • Bezpieczeństwo wątków: zamrożony Freezable obiekt może być współużytkowany między wątkami.

  • Szczegółowe powiadomienie o zmianie: W przeciwieństwie do innych DependencyObject obiektów obiekt Freezable udostępnia powiadomienia o zmianie po zmianie wartości właściwości podrzędnej.

  • Łatwe klonowanie: klasa Freezable zaimplementowała już kilka metod, które tworzą głębokie klony.

Aby uzyskać informacje na temat używania i tworzenia własnych Freezable obiektów, zobacz Omówienie obiektów z możliwością zamrażania.

Konstruktory

Freezable()

Inicjuje nowe wystąpienie klasy pochodnej Freezable .

Właściwości

CanFreeze

Pobiera wartość wskazującą, czy obiekt może być niemodyfikowalny.

DependencyObjectType

DependencyObjectType Pobiera opakowujący typ clR tego wystąpienia.

(Odziedziczone po DependencyObject)
Dispatcher

Pobiera element, z Dispatcher który DispatcherObject jest skojarzony.

(Odziedziczone po DispatcherObject)
IsFrozen

Pobiera wartość wskazującą, czy obiekt jest obecnie modyfikowalny.

IsSealed

Pobiera wartość wskazującą, czy to wystąpienie jest obecnie zapieczętowane (tylko do odczytu).

(Odziedziczone po DependencyObject)

Metody

CheckAccess()

Określa, czy wątek wywołujący ma dostęp do tego DispatcherObjectelementu .

(Odziedziczone po DispatcherObject)
ClearValue(DependencyProperty)

Czyści wartość lokalną właściwości. Właściwość do wyczyszczenia jest określana przez DependencyProperty identyfikator.

(Odziedziczone po DependencyObject)
ClearValue(DependencyPropertyKey)

Czyści wartość lokalną właściwości tylko do odczytu. Właściwość do wyczyszczenia jest określana przez DependencyPropertyKeyelement .

(Odziedziczone po DependencyObject)
Clone()

Tworzy modyfikowalny klon obiektu Freezable, tworząc głębokie kopie wartości obiektu. Podczas kopiowania właściwości zależności obiektu ta metoda kopiuje wyrażenia (które mogą już nie być rozpoznawane), ale nie animacje ani ich bieżące wartości.

CloneCore(Freezable)

Sprawia, że wystąpienie jest klonem (kopią głęboką) określonej Freezable wartości właściwości przy użyciu wartości właściwości base (nie animowanych).

CloneCurrentValue()

Tworzy modyfikowalny klon (kopię głęboką) Freezable przy użyciu jego bieżących wartości.

CloneCurrentValueCore(Freezable)

Sprawia, że wystąpienie jest modyfikowalny klon (kopia głęboka) określonego Freezable przy użyciu bieżących wartości właściwości.

CoerceValue(DependencyProperty)

Coerce wartość określonej właściwości zależności. 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, ponieważ istnieje w wywołaniu DependencyObject.

(Odziedziczone po DependencyObject)
CreateInstance()

Inicjuje nowe wystąpienie klasy Freezable.

CreateInstanceCore()

Po zaimplementowaniu w klasie pochodnej tworzy nowe wystąpienie klasy pochodnej Freezable .

Equals(Object)

Określa, czy podany DependencyObject element jest odpowiednikiem bieżącego DependencyObjectelementu .

(Odziedziczone po DependencyObject)
Freeze()

Sprawia, że bieżący obiekt jest niezmodyfikowalny i ustawia jego IsFrozen właściwość na true.

Freeze(Freezable, Boolean)

isChecking Jeśli parametr ma truewartość , ta metoda wskazuje, czy określona Freezable metoda może być niezmodyfikowalna. isChecking Jeśli parametr to false, ta metoda próbuje dokonać określonego Freezable niemodyfikowalnego i wskazuje, czy operacja zakończyła się pomyślnie.

FreezeCore(Boolean)

Sprawia, Freezable że obiekt jest niezmodyfikowalny lub sprawdza, czy można go niemodyfikować.

GetAsFrozen()

Tworzy zamrożoną kopię obiektu Freezableprzy użyciu wartości właściwości base (nie animowanych). Ponieważ kopia jest zamrożona, wszystkie zamrożone obiekty podrzędne są kopiowane przez odwołanie.

GetAsFrozenCore(Freezable)

Sprawia, że wystąpienie jest zamrożonym klonem określonej Freezable wartości właściwości przy użyciu wartości właściwości base (nie animowanych).

GetCurrentValueAsFrozen()

Tworzy zamrożoną kopię przy użyciu bieżących Freezable wartości właściwości. Ponieważ kopia jest zamrożona, wszystkie zamrożone obiekty podrzędne są kopiowane przez odwołanie.

GetCurrentValueAsFrozenCore(Freezable)

Sprawia, że bieżące wystąpienie jest klonem zamrożonym określonego Freezableobiektu . Jeśli obiekt ma animowane właściwości zależności, są kopiowane ich bieżące animowane wartości.

GetHashCode()

Pobiera kod skrótu dla tego pliku DependencyObject.

(Odziedziczone po DependencyObject)
GetLocalValueEnumerator()

Tworzy wyspecjalizowany moduł wyliczający do określania, które właściwości zależności mają lokalnie ustawione wartości w tym DependencyObjectelemecie .

(Odziedziczone po DependencyObject)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
GetValue(DependencyProperty)

Zwraca bieżącą obowiązującą wartość właściwości zależności dla tego wystąpienia obiektu DependencyObject.

(Odziedziczone po DependencyObject)
InvalidateProperty(DependencyProperty)

Ponownie oblicza efektywną wartość dla określonej właściwości zależności.

(Odziedziczone po DependencyObject)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
OnChanged()

Wywoływana po zmodyfikowaniu bieżącego Freezable obiektu.

OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Zapewnia, że odpowiednie wskaźniki kontekstu są ustanawiane dla DependencyObjectType elementu członkowskiego danych, który został właśnie ustawiony.

OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

Ten element członkowski obsługuje infrastrukturę Windows Presentation Foundation (WPF) i nie jest przeznaczony do użycia bezpośrednio z kodu.

OnPropertyChanged(DependencyPropertyChangedEventArgs)

Zastępuje implementację DependencyObjectOnPropertyChanged(DependencyPropertyChangedEventArgs) metody w celu wywołania wszystkich Changed procedur obsługi w odpowiedzi na zmieniającą się właściwość zależności typu Freezable.

ReadLocalValue(DependencyProperty)

Zwraca wartość lokalną właściwości zależności, jeśli istnieje.

(Odziedziczone po DependencyObject)
ReadPreamble()

Gwarantuje, że dostęp do obiektu Freezable jest uzyskiwany z prawidłowego wątku. Dziedzicze muszą Freezable wywoływać tę metodę na początku dowolnego interfejsu API, który odczytuje elementy członkowskie danych, które nie są właściwościami zależności.

SetCurrentValue(DependencyProperty, Object)

Ustawia wartość właściwości zależności bez zmiany źródła wartości.

(Odziedziczone po DependencyObject)
SetValue(DependencyProperty, Object)

Ustawia wartość lokalną właściwości zależności określonej przez jego identyfikator właściwości zależności.

(Odziedziczone po DependencyObject)
SetValue(DependencyPropertyKey, Object)

Ustawia wartość lokalną właściwości zależności tylko do odczytu określona przez DependencyPropertyKey identyfikator właściwości zależności.

(Odziedziczone po DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Zwraca wartość wskazującą, czy procesy serializacji powinny serializować wartość podanej właściwości zależności.

(Odziedziczone po DependencyObject)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
VerifyAccess()

Wymusza, że wątek wywołujący ma dostęp do tego DispatcherObjectelementu .

(Odziedziczone po DispatcherObject)
WritePostscript()

Changed Zgłasza zdarzenie dla Freezable metody i wywołuje jej OnChanged() metodę. Klasy pochodzące z Freezable programu powinny wywoływać tę metodę na końcu dowolnego interfejsu API, który modyfikuje składowe klasy, które nie są przechowywane jako właściwości zależności.

WritePreamble()

Sprawdza, czy Freezable element nie jest zamrożony i czy jest uzyskiwany dostęp do niego z prawidłowego kontekstu wątkowego. Freezable dziedzicze powinny wywoływać tę metodę na początku dowolnego interfejsu API, który zapisuje do elementów członkowskich danych, które nie są właściwościami zależności.

Zdarzenia

Changed

Występuje, gdy Freezable obiekt lub, który zawiera, jest modyfikowany.

Dotyczy

Bezpieczeństwo wątkowe

Wszystkie publiczne static elementy członkowskie tego typu są bezpieczne wątkami. Wystąpienia elementów członkowskich nie dają gwarancji bezpieczeństwa wątków.

IsFrozen Gdy właściwość ma falsewartość , Freezable dostęp do obiektu można uzyskać tylko z wątku, na którym został utworzony. Próba uzyskania dostępu do niego z innego wątku zgłasza błąd InvalidOperationException. Metody Invoke i BeginInvoke zapewniają obsługę marshalingu do poprawnego wątku.

Gdy właściwość IsFrozen ma truewartość , Freezable obiekty są bezwątkowy. Aby uzyskać więcej informacji, zobacz Omówienie obiektów z możliwością zamrażania.