【问题标题】:WPF v/s System.DrawingWPF v/s System.Drawing
【发布时间】:2009-01-09 12:08:47
【问题描述】:

我必须在 .Net 中编写一个简单的控件,该控件可以绘制如下图所示的几何图形,并且几何图形不会比此图像中显示的更复杂,即它将是一些填充的多边形和一些虚线。然而,这不是一个静态图像,它被绘制一次并被遗忘。几何形状的尺寸可以由用户更改,必须通过更新将其反映在绘图中。

我的学长说我应该使用 WPF 进行绘图。我的问题是 WPF 对于这类工作是否过大, System.Drawing 就足够了吗?

【问题讨论】:

    标签: .net wpf system.drawing


    【解决方案1】:

    虽然 WPF 可能确实具有绘图功能,但它确实是一个与 WinForms 完全不同的 UI 工具包。如果您最终计划将您的应用程序移植到 WPF,我可以看到使用它来绘制您的图像,但否则我真的不明白您为什么要引入 WPF 只是为了绘制一张图像。这对我来说似乎有点矫枉过正。

    您可以通过MSDNWindowsClient.net 了解有关 WPF 的更多信息。

    【讨论】:

      【解决方案2】:

      确实,您不能根据是否要绘制上述内容来决定是否使用 WPF / Winform。您将能够在 System.Drawing 中毫无问题地绘制上述内容。

      更有趣的是以下内容: 上述人工制品是否由一些复杂的对象表示?在这种情况下,您可以教 WPF 以上述方式渲染所述对象。如果您有一个程序,例如动态更改基本尺寸,然后您可以告诉 WPF,如果您更改对象中的这些值,则它的显示也必须更改。

      总而言之,这两种技术是完全不同的,但是,我认为 WPF 是更完整的一种——即便如此,考虑到与它的可能性相比,WPF 的采用速度有多慢,我个人认为 WPF 来得太早了几年。

      【讨论】:

        【解决方案3】:

        WPF 是标准 GUI 控件(按钮、文本框等)的新框架,但用于绘制自定义图像,尤其是如果它们不是控件,它实际上与 WinForms 相同。

        由于 WinForms 使用 GDI 绘制,WPF 使用 DirectX,所以存在一些绘制差异,但对于直接绘制,两者大多是等效的。

        现在,如果绘图是交互式控件,则 WPF 具有优势,因为它比在 WinForms 中更容易自定义标准控件的绘图。

        那么问题就变成了,绘图有什么作用?如果您可以更改其外观,标准控件是否可以执行相同的功能?如果是这样,那么 WPF 就是您所需要的。

        【讨论】:

        • 你不应该暗示没有那么多差异。他们是巨大的。
        • 除非您使用内置控件,否则绘图就是绘图。线条是线条,椭圆是椭圆。差别不大。
        猜你喜欢
        • 2015-09-13
        • 1970-01-01
        • 2016-01-22
        • 2011-07-05
        • 2012-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多