在WPF中选择Drawing和Shape

时间:2011-05-05 10:15:42

标签: wpf graphics 2d

我不太确定班级System.Windows.Media.DrawingSystem.Windows.Shapes.Shape之间的差异。它们都暴露了WPF中与2D图形相关的功能。你什么时候在WPF应用程序中选择一个,何时选择另一个?

1 个答案:

答案 0 :(得分:10)

Shape继承自FrameworkElement,因此是一个高级对象,提供命中测试,样式,布局和数据绑定等功能。相比之下,Drawing不会从FrameworkElemet继承而且不支持任何这些功能。正如文档中提到的那样,Drawing对于轻量级可视对象很有用。如果要创建用于绘制区域或背景的复杂画笔,则DrawingBrush将非常有效。

绘图可以组合文本,视频,图像和Geometry对象(另一个轻量级类)来创建复杂但非常高效和快速的绘图。

简而言之,DrawingShape的低级替代。 至于用例,取决于。

  • 如果您需要设置动画或进行任何类型的绑定,您可以使用Shapes。
  • 如果您正在创建画笔或复杂的剪贴画/矢量图形,您可能会使用图纸。
  • 此外,如果您通过覆盖OnRender来绘制内容,则主要使用Geometries。

Drawing也是Freezable,因此可以在线程之间共享(假设它被冻结)。