我必须在.Net 中编写一个简单的控件,该控件绘制看起来像下图的几何图形,并且几何图形不会比此图像中显示的更复杂,即它将是一些填充的多边形和一些虚线。然而,这不是一个静态图像,它被绘制一次并被遗忘。几何形状的尺寸可以由用户更改,必须通过更新将其反映在绘图中。
我的学长说我应该使用 WPF 进行绘图。我的问题是 WPF 对于这种工作是否过大, System.Drawing 就足够了吗?
我必须在.Net 中编写一个简单的控件,该控件绘制看起来像下图的几何图形,并且几何图形不会比此图像中显示的更复杂,即它将是一些填充的多边形和一些虚线。然而,这不是一个静态图像,它被绘制一次并被遗忘。几何形状的尺寸可以由用户更改,必须通过更新将其反映在绘图中。
我的学长说我应该使用 WPF 进行绘图。我的问题是 WPF 对于这种工作是否过大, System.Drawing 就足够了吗?
虽然 WPF 可能确实具有绘图功能,但它确实是一个与 WinForms 完全不同的 UI 工具包。如果您最终计划将您的应用程序移植到 WPF,我可以看到使用它来绘制您的图像,但否则我真的不明白您为什么要引入 WPF 只是为了绘制一张图像。这对我来说似乎有点矫枉过正。
您可以在MSDN或WindowsClient.net上找到有关 WPF 的更多信息。
实际上,您不能根据是否要绘制上述内容来决定是否使用 WPF / Winform。您将能够在 System.Drawing 中毫无问题地绘制上述内容。
更有趣的是:上面的人工制品是由一些复杂的物体表示的吗?在这种情况下,您可以教 WPF 以上述方式渲染所述对象。如果您有一个程序,例如动态更改基本尺寸,那么您可以告诉 WPF,如果您更改对象中的这些值,则它的显示也必须更改。
总而言之,这两种技术是完全不同的,但是,我认为 WPF 是更完整的一种——即便如此,我个人认为 WPF 来得太早了几年,考虑到与它的可能性相比,它的采用速度有多慢。
WPF 是标准 GUI 控件(按钮、文本框等)的新框架,但对于绘制自定义图像,特别是如果它们不是控件,它实际上与 WinForms 相同。
由于 WinForms 使用 GDI 绘制而 WPF 使用 DirectX,因此存在一些绘制差异,但对于直接绘制,两者大多是等效的。
现在,如果绘图是交互式控件,则 WPF 具有优势,因为自定义标准控件的绘图比在 WinForms 中容易得多。
那么问题就变成了,绘图有什么作用?如果您可以更改其外观,标准控件是否可以执行相同的功能?如果是这样,那么 WPF 就是您所需要的。