我不太确定班级System.Windows.Media.Drawing
和System.Windows.Shapes.Shape
之间的差异。它们都暴露了WPF中与2D图形相关的功能。你什么时候在WPF应用程序中选择一个,何时选择另一个?
答案 0 :(得分:10)
Shape
继承自FrameworkElement,因此是一个高级对象,提供命中测试,样式,布局和数据绑定等功能。相比之下,Drawing不会从FrameworkElemet
继承而且不支持任何这些功能。正如文档中提到的那样,Drawing
对于轻量级可视对象很有用。如果要创建用于绘制区域或背景的复杂画笔,则DrawingBrush将非常有效。
绘图可以组合文本,视频,图像和Geometry对象(另一个轻量级类)来创建复杂但非常高效和快速的绘图。
简而言之,Drawing
是Shape
的低级替代。
至于用例,取决于。
OnRender
来绘制内容,则主要使用Geometries。 Drawing
也是Freezable
,因此可以在线程之间共享(假设它被冻结)。