c# - Windows 窗体与 WPF

标签 c# .net wpf forms xaml

<分区>

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

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

最佳答案

  1. 说 WPF 比 Windows 窗体更好没有任何意义,反之亦然。这取决于许多因素:

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

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

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

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

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

    • 数据绑定(bind),使您能够更清晰地分离数据和布局。

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

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

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

    • WinForms 的第 3 方控制空间提供了更多支持。 (这种情况正在改变,但就目前而言,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 应用程序中的使用方式。

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

    • 数据绑定(bind):了解 WPF 数据绑定(bind)的工作原理及其使用方法。

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

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

有关更多信息,请参阅下面提到的 URL

Windows Form Vs WPF Windows

关于c# - Windows 窗体与 WPF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31154338/

相关文章:

c# - 使用用户名和密码在 C# 中启动进程会引发 "Access is Denied"异常

wpf - 如何重新打开关闭的窗口?

c# - 单元格编辑后 DataGrid 刷新

c# - TreeView 项目更改事件

c# - Enum.ToString() 已弃用?

c# - 即使在HttpConfiguration和web.config中禁用,ASP.NET MVC StackTrace仍然显示

c# - 为什么 asyncController 无法获取数据

c# - Linq动态在哪里算?

.net - 使用 SetDefaultDllDirectories 中断字体处理

c# - log4net 自定义日志对象和附加程序