WPF:Freezable和Visual之间的区别

时间:2013-10-23 14:38:29

标签: c# wpf difference freezable

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

那么,Freezable以图形表示和Visual?

的方式究竟是什么目的呢?

1 个答案:

答案 0 :(得分:1)

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

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

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

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