【发布时间】:2011-05-05 10:15:42
【问题描述】:
我不太确定 System.Windows.Media.Drawing 和 System.Windows.Shapes.Shape 类之间的区别。它们都公开了与 WPF 中的 2D 图形相关的功能。您什么时候在 WPF 应用程序中选择一个,什么时候选择另一个?
【问题讨论】:
我不太确定 System.Windows.Media.Drawing 和 System.Windows.Shapes.Shape 类之间的区别。它们都公开了与 WPF 中的 2D 图形相关的功能。您什么时候在 WPF 应用程序中选择一个,什么时候选择另一个?
【问题讨论】:
Shape 继承自 FrameworkElement,因此是一个高级对象,它提供诸如命中测试、样式、布局和数据绑定等功能。相比之下,Drawing 不继承自FrameworkElemet,也不支持任何这些功能。正如文档中提到的那样,Drawing 对于轻量级视觉对象很有用。如果您要创建一个复杂的画笔来绘制区域或背景,那么 DrawingBrush 会非常有效。
绘图可以结合文本、视频、图像和Geometry 对象(另一个轻量级)来创建复杂但非常高效和快速的绘图。
简而言之,Drawing 是Shape 的低级替代方案。
至于用例,这取决于。
OnRender 来绘制事物,您将主要使用几何。Drawing 也是 Freezable,因此可以在线程之间共享(假设它被冻结)。
【讨论】: