2013-10-23 34 views
0

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

那么,以图形表示和Visual的方式,Freezable的目的究竟是什么?

回答

1

Visual实现了2D对象的概念,通常需要在大致矩形的区域中进行视觉呈现。 Visual的实际渲染发生在其他类中(它不是独立的),但Visual类提供了一种已知类型,可供各级渲染进程使用。 Visual implements命中测试,但不会公开报告命中测试肯定的事件(这些属于UIElement)。有关更多信息,请参阅Visual Layer Programming。

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

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

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

+0

谢谢你的答案,dev刺猬。即使这并不是我正在寻找的整体解释。我知道我的问题不是黑色和白色=)。 – Sam

+0

它是一个广泛的话题。虽然不确定你确实需要什么。尝试给我们一个确切的问题来解决,而不是像这样的讨论一样主题 –

+0

是的,你是对的。不过,我想我找到了我正在寻找的东西。 Visual(间接封装)的指令(DUCE.IResource)由Freezables实现,例如,由抽象绘图类。我将尝试通过UML图表将这个模式可视化并将其发布到此处。 – Sam