Freezable.GetAsFrozen Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает фиксированную копию объекта Freezable, используя базовые (не анимационные) значения свойств. Так как копия является фиксированной, копируются только ссылки на фиксированные вложенные объекты.
public:
System::Windows::Freezable ^ GetAsFrozen();
public System.Windows.Freezable GetAsFrozen ();
member this.GetAsFrozen : unit -> System.Windows.Freezable
Public Function GetAsFrozen () As Freezable
Возвращаемое значение
Фиксированная копия объекта Freezable. Свойство копии IsFrozen имеет значение true
.
Исключения
Объект Freezable нельзя заморозить, так как он включает выражения или анимационные свойства.
Комментарии
Перед вызовом CanFreeze этого метода необходимо проверить свойство , чтобы убедиться, что Freezable объект можно заморозить. Этот метод аналогичен созданию копии с помощью Clone и последующей заморозке ее с помощью Freeze метода .
Методы GetAsFrozen и GetCurrentValueAsFrozen могут повысить производительность копирования, так как они не клонируют Freezable вложенные объекты, которые уже заморожены, а копируют их только по ссылке.
В следующей таблице перечислены различия между методами GetAsFrozen и GetCurrentValueAsFrozen .
Действие | Поведение метода GetAsFrozen | Поведение метода GetCurrentValueAsFrozen |
---|---|---|
Копирование свойства зависимостей с выражением | Метод создает исключение , InvalidOperationException так как он не может Freeze использовать свойство . | Копируется текущее значение выражения, но не само выражение. |
Копирование анимированного свойства зависимостей | Копируется базовое (неанимированное) значение свойства. Анимации не копируются. | Текущее анимированное значение свойства копируется. Анимации не копируются. |
Обратите внимание, что ненастроенные свойства не копируются и не являются свойствами только для чтения.
Чтобы создать копию объекта , Freezable которая не заморожена, используйте Clone метод .
Примечания для тех, кто наследует этот метод
Этот метод использует виртуальный GetAsFrozenCore(Freezable) метод для создания клона.