WPF:可冻结和可视之间的区别

本文关键字:之间 区别 可视 冻结 WPF | 更新日期: 2023-09-27 18:36:45

当然,WPF 中的 Freezable 类和 Visual 类具有完全不同的目的。我的问题更多地集中在实现 Visual 类或 Freezable 类的对象之间的区别上。因为它们通常都与图形问题有关,所以我感到困惑。

那么,以图形表示和视觉的方式进行冻结的确切目的是什么?

WPF:可冻结和可视之间的区别

Visual 实现了 2D 对象的概念,该对象通常需要在大致矩形区域中进行视觉呈现。视觉对象的实际呈现发生在其他类中(它不是独立的),但 Visual 类提供了一个已知类型,该类型由各个级别的呈现进程使用。视觉对象实现命中测试,但它不会公开报告命中测试阳性的事件(这些事件在 UIElement 中)。有关更多信息,请参见可视层编程。

http://msdn.microsoft.com/en-us/library/ms753209(v=vs.110).aspx

Freezable 通过提供在出于性能原因需要或需要不可变对象时生成对象副本的方法,模拟可变对象中的不可变性。可冻结类型为某些图形元素(如几何图形和画笔)以及动画提供了通用基础。值得注意的是,可冻结对象不是视觉对象;当应用可冻结对象来填充另一个对象的属性值时,它可以保存成为子属性的属性,并且这些子属性可能会影响呈现。有关详细信息,请参阅可冻结对象概述。

http://msdn.microsoft.com/en-us/library/ms750509(v=vs.110).aspx