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 класса.

Свойства

Имя Описание
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()

Делает текущий объект неизменяемым и задает для свойства значение IsFrozentrue.

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, DependencyProperty)

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

OnFreezablePropertyChanged(DependencyObject, DependencyObject)

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

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 свойстве trueFreezable объекты являются свободными потоками. Для получения дополнительной информации см. Обзор замораживаемых объектов.