Freezable Класс

Определение

Определяет объект, имеющий изменяемое состояние и состояние только для чтения (зафиксированное). Классы, производные от Freezable, предоставляют подробные уведомления об изменениях, могут быть неизменяемыми и могут копировать себя.

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
Наследование
Производный

Комментарии

Класс предоставляет специальные Freezable функции, которые могут помочь повысить производительность приложения при использовании объектов, которые дорого изменить или скопировать. Ниже приведены примеры Freezable объектов .

Наследование от Freezable

Класс, производный от Freezable , получает следующие возможности:

  • Специальные состояния: состояние только для чтения (замороженное) и состояние, доступное для записи.

  • Потокобезопасность: замороженный Freezable объект можно совместно использовать в потоках.

  • Подробное уведомление об изменениях. В отличие от других DependencyObject объектов, Freezable объект предоставляет уведомления об изменениях при изменении значений вложенных свойств.

  • Простое клонирование: класс Freezable уже реализовал несколько методов, которые создают глубокие клоны.

Сведения об использовании и создании собственных Freezable объектов см. в разделе Общие сведения об объектах Freezable.

Конструкторы

Freezable()

Инициализирует новый экземпляр производного класса Freezable.

Свойства

CanFreeze

Возвращает значение, которое указывает, можно ли сделать объект неизменяемым.

DependencyObjectType

Возвращает объект DependencyObjectType , который заключает в оболочку тип среды CLR этого экземпляра.

(Унаследовано от DependencyObject)
Dispatcher

Возвращает объект Dispatcher, с которым связан этот объект DispatcherObject.

(Унаследовано от DispatcherObject)
IsFrozen

Получает значение, указывающее, доступен ли объект для изменения в настоящее время.

IsSealed

Получает значение, указывающее, является ли этот экземпляр в данный момент запечатанным (доступным только для чтения).

(Унаследовано от DependencyObject)

Методы

CheckAccess()

Определяет, имеет ли вызывающий поток доступ к этому DispatcherObject.

(Унаследовано от DispatcherObject)
ClearValue(DependencyProperty)

Очищает локальное значение свойства. Очищаемое свойство задается идентификатором DependencyProperty.

(Унаследовано от DependencyObject)
ClearValue(DependencyPropertyKey)

Очищает локальное значение доступного только для чтения свойства. Очищаемое свойство задается ключом DependencyPropertyKey.

(Унаследовано от DependencyObject)
Clone()

Создает изменяемый клон данного объекта Freezable, делая глубокие копии значений этого объекта. При копировании свойств зависимостей объекта этот метод копирует выражения (которые могут уже не быть разрешимыми), но не копирует анимации и их текущие значения.

CloneCore(Freezable)

Делает экземпляр клоном (глубокой копией) указанного объекта Freezable, используя базовые (без анимации) значения свойств.

CloneCurrentValue()

Создает редактируемую копию (глубокую копию) объекта Freezable с использованием его текущих значений.

CloneCurrentValueCore(Freezable)

Делает экземпляр изменяемым клоном (глубокой копией) указанного объекта Freezable с использованием текущих значений свойств.

CoerceValue(DependencyProperty)

Приводит значение указанного свойства зависимостей. Это осуществляется путем вызова какой-либо функции CoerceValueCallback, указанной в метаданных свойства зависимостей, которое существует в вызывающем объекте DependencyObject.

(Унаследовано от DependencyObject)
CreateInstance()

Инициализирует новый экземпляр класса Freezable.

CreateInstanceCore()

Если реализуется в производном классе, создает новый экземпляр производного класса Freezable.

Equals(Object)

Определяет, является ли указанный DependencyObject эквивалентом текущего DependencyObject.

(Унаследовано от DependencyObject)
Freeze()

Делает текущий объект неизменяемым и присваивает его свойству IsFrozen значение true.

Freeze(Freezable, Boolean)

Если параметр isChecking имеет значение true, данный метод показывает, можно ли сделать заданный объект Freezable нередактируемым. Если параметр isChecking имеет значение false, данный метод пытается сделать заданный объект Freezable нередактируемым и показывает, была ли операция успешной.

FreezeCore(Boolean)

Делает объект Freezable нередактируемым или проверяет, можно ли его сделать нередактируемым.

GetAsFrozen()

Создает фиксированную копию объекта Freezable, используя базовые (не анимационные) значения свойств. Так как копия является фиксированной, копируются только ссылки на фиксированные вложенные объекты.

GetAsFrozenCore(Freezable)

Делает экземпляр зафиксированной копией указанного Freezable, используя базовые (без анимации) значения свойств.

GetCurrentValueAsFrozen()

Создает фиксированную копию объекта Freezable с использованием текущих значений свойств. Так как копия является фиксированной, копируются только ссылки на фиксированные вложенные объекты.

GetCurrentValueAsFrozenCore(Freezable)

Создает текущий экземпляр замороженной копии указанного объекта Freezable. Если объект имеет анимированные свойства зависимостей, копируются их текущие анимированные значения.

GetHashCode()

Возвращает хэш-код для данного объекта DependencyObject.

(Унаследовано от DependencyObject)
GetLocalValueEnumerator()

Создает специализированный перечислитель для определения свойств зависимостей, которые локально установили значения для данного DependencyObject.

(Унаследовано от DependencyObject)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
GetValue(DependencyProperty)

Возвращает текущее действующее значение свойства зависимостей в этом экземпляре DependencyObject.

(Унаследовано от DependencyObject)
InvalidateProperty(DependencyProperty)

Повторно вычисляет действующее значение для указанного свойства зависимостей.

(Унаследовано от DependencyObject)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
OnChanged()

Вызывается при изменении текущего объекта Freezable.

OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Обеспечивает создание соответствующих указателей контекста для элемента данных типа DependencyObjectType, который был только что задан.

OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

Этот элемент поддерживает инфраструктуру Windows Presentation Foundation (WPF) и не предназначен для использования непосредственно из кода.

OnPropertyChanged(DependencyPropertyChangedEventArgs)

Переопределяет реализацию DependencyObject для OnPropertyChanged(DependencyPropertyChangedEventArgs), чтобы также вызвать любой обработчик Changed в ответ на изменение свойства зависимостей типа Freezable.

ReadLocalValue(DependencyProperty)

Возвращает локальное значение свойства зависимостей, если таковое существует.

(Унаследовано от DependencyObject)
ReadPreamble()

Обеспечивает доступ к Freezable из допустимого потока. Наследники объекта Freezable должны вызывать данный метод в начале любого API, который считывает элементы данных, не являющиеся свойствами зависимостей.

SetCurrentValue(DependencyProperty, Object)

Задает значение свойства зависимостей, не меняя источник значения.

(Унаследовано от DependencyObject)
SetValue(DependencyProperty, Object)

Задает локальное значение свойства зависимостей, указанного идентификатором этого свойства.

(Унаследовано от DependencyObject)
SetValue(DependencyPropertyKey, Object)

Задает локальное значение свойства зависимости только для чтения, определяемое идентификатором DependencyPropertyKey свойства зависимостей.

(Унаследовано от DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Возвращает значение, которое указывает, следует ли процессам сериализации выполнять сериализацию значения для предоставленного свойства зависимостей.

(Унаследовано от DependencyObject)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
VerifyAccess()

Обеспечивает наличие у вызывающего потока доступ к этому DispatcherObject.

(Унаследовано от DispatcherObject)
WritePostscript()

Вызывает событие Changed для объекта Freezable и вызывает его метод OnChanged(). Классы, производные от Freezable, должны вызывать этот метод в конце любого API, который изменяет члены класса, не сохраненные в виде свойств зависимостей.

WritePreamble()

Проверяет, что объект Freezable не заморожен и доступ к нему осуществляется из допустимого контекста потока. Наследники объекта Freezable должны вызывать данный метод в начале любого API, который выполняет запись в элементах данных, не являющихся свойствами зависимостей.

События

Changed

Происходит, когда изменяется класс Freezable или объект, который входит в его состав.

Применяется к

Потокобезопасность

Все открытые static члены этого типа являются потокобезопасны. Потокобезопасная работа с членами экземпляров типа не гарантируется.

IsFrozen Если свойство имеет значение false, доступ к объекту Freezable можно получить только из потока, в котором он был создан. При попытке доступа к нему из другого потока возникает исключение InvalidOperationException. Методы Invoke и BeginInvoke обеспечивают поддержку маршалинга в правильный поток.

Если их IsFrozen свойство имеет значение true, Freezable объекты являются свободными. Дополнительные сведения см. в разделе Общие сведения об объектах класса Freezable.