【问题标题】:Windows Forms vs. WPF [closed]Windows 窗体与 WPF [关闭]
【发布时间】:2015-07-01 06:48:14
【问题描述】:

我已经开发 Windows 窗体应用程序 5 年了。很多人说我应该研究一下WPF。我有几个关于 WPF 与 Windows 窗体的问题,以确定哪个是最好的。 WPF 比 Windows 窗体更新,许多人说它将是未来。其他人说 Windows 窗体更旧,因此更安全。我不确定未来会怎样。优缺点我google了一下,希望大家能给我更深入的回答这些问题:

  1. 根据性能,哪一个更好?
  2. 使用 WPF 代替 Windows 窗体的最大优势是什么?
  3. 使用 Windows 窗体代替 WPF 的最大优势是什么?
  4. 哪个更受企业使用/喜欢?
  5. 从 Windows 窗体切换到 WPF 有多难?
  6. 我绝对应该研究 WPF 的哪些部分?

【问题讨论】:

  • 部分答案:5. WPF 的学习曲线非常陡峭,因为它与 Windows 窗体非常不同。
  • 更安全是我不同意的,winforms 中没有任何东西可以让它更安全,如果有的话,它可能会不太安全,因为你有时需要旧版本的 api 来使用它(虽然这只是一个年龄问题)。你剩下的问题仍然很宽泛
  • DrKoch,最难的部分是什么? Xaml、数据绑定等?
  • 这个网站给出了一个不错的简短的与我发现有趣的另一个:educba.com/winforms-vs-wpf

标签: c# .net wpf forms xaml


【解决方案1】:
  1. 没有任何意义说 WPF 比 windows 窗体好,反之亦然。这取决于许多因素:

    • 您正在构建什么样的 UI。 显然,您正在设计的视图的复杂性将影响两个平台的性能。它们有不同的布局和渲染管道。

    • 在每个平台上优化性能的效率如何。

  2. 使用 WPF 代替 Windows 窗体的优点:

    • XAML 使创建和编辑 GUI 变得容易,并允许在设计人员 (XAML) 和程序员(C#、VB.NET 等)之间分配工作。

    • 它允许您为 Windows 应用程序和 Web 应用程序 (Silverlight/XBAP) 创建用户界面。

    • 数据绑定,可让您更清晰地分离数据和布局。

    • 使用硬件加速来绘制 GUI,以获得更好的性能。

  3. 使用 Windows 窗体而不是 WPF 的主要优势:

    • WPF 的内置控件套件远比 WinForms 受限。

    • 第 3 方控件空间对 WinForms 的支持更大。 (这种情况正在改变,但现在由于时间的推移,WinForms 在社区中得到了更大的支持。)

    • WPF 的主要缺点是 Mono 并不真正支持跨平台(例如,它不适用于 Linux 和 Mac)。最初,Xamarian/Novella 表示由于实施的复杂性,他们不会实施它。我没有看到任何相反的东西。不是说不是,但他们的建议是编写模型类,然后做一个特定于操作系统的前端。即使 WPF 是开源的,它也可能建立在不容易移植的东西上。

  4. https://social.msdn.microsoft.com/Forums/en-US/e134134a-352f-435b-943a-eda7a2b14fc0/wpf-vs-windows-forms-2015?forum=wpf

  5. 取决于你的学习能力。

  6. 我绝对应该研究 WPF 的哪些部分?

    • XAML:了解 XAML 及其在 WPF 应用程序中的使用方式。

    • 布局:了解布局面板以及它们如何用于构建用户界面。

    • 数据绑定:了解 WPF 数据绑定的工作原理以及如何使用它。

    • 数据模板和触发器:了解数据模板和触发器的工作原理以及如何使用它们。

    • 样式:了解如何在 WPF 中设置 UI 样式。

欲了解更多信息,请参阅下面提到的网址

Windows Form Vs WPF Windows

【讨论】:

  • 这是我的两分钱。我目前正在开发基于 GPS 的实时监控工具(车辆等)。 WPF 在图形、重绘、缩放、旋转等方面非常出色,但学习曲线肯定存在,但并非不可能。问题是您的项目是非常基于 GUI 还是只是跨国的。如果您已经有足够的经验,您可以继续使用 WinForms 进行事务处理。如果你对图形的东西很感兴趣,WPF 可以让你更好地分离设计(对于设计师)和后端(对于交易者)。不过学习曲线就在那里。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-04
  • 1970-01-01
  • 1970-01-01
  • 2021-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多