WPF: разница между Freezable и Visual
Конечно, класс Freezable и класс Visual в WPF имеют совершенно разные цели. Мой вопрос сосредоточен больше на разнице между объектами, которые реализуют либо класс Visual, либо класс Freezable. Поскольку они оба обычно связаны с графическими проблемами, я запутался.
Итак, какова цель Freezable в виде графического представления и визуального представления?
1 ответ
Visual реализует концепцию 2D-объекта, который обычно требует визуального представления в приблизительно прямоугольной области. Фактический рендеринг Visual происходит в других классах (он не является автономным), но класс Visual предоставляет известный тип, который используется процессами рендеринга на различных уровнях. В Visual реализовано тестирование на попадание, но оно не отображает события, сообщающие о положительных результатах тестирования на попадание (они есть в UIElement). Для получения дополнительной информации см. Визуальное программирование слоя.
http://msdn.microsoft.com/en-us/library/ms753209(v=vs.110).aspx
Freezable имитирует неизменность в изменчивом объекте, предоставляя средства для генерации копий объекта, когда неизменяемый объект требуется или желателен по соображениям производительности. Тип Freezable обеспечивает общую основу для определенных графических элементов, таких как геометрия и кисти, а также анимации. Примечательно, что Freezable не является Visual; он может содержать свойства, которые становятся вложенными свойствами, когда Freezable применяется для заполнения значения свойства другого объекта, и эти дочерние свойства могут влиять на рендеринг. Для получения дополнительной информации см. Обзор замораживаемых объектов.
http://msdn.microsoft.com/en-us/library/ms750509(v=vs.110).aspx