【问题标题】:Moving from WinForms to WPF从 WinForms 迁移到 WPF
【发布时间】:2010-01-28 11:24:24
【问题描述】:

我们正在考虑从 WinForms 迁移到 WPF,WPF 有哪些陷阱?我们得到了组件的 flexgrid 是否有任何具有相同功能的 wpf 网格?它的一个好处是您可以为单元格实现自己的绘制方法...它可以合并单元格打印并保存为多种文件格式..

【问题讨论】:

  • 所有答案都在说“WPF 不同”。这是一个巨大的轻描淡写。您不仅要学习很多新东西 - 您还必须忘记从 Forms 中学到的所有内容。这是一种全新的 UI 方式。
  • 在这里查看我的答案 - stackoverflow.com/questions/1337345/…

标签: wpf winforms


【解决方案1】:

一般来说,WPF 开发与 WinForms 有很大不同。您应该预计学习新技术需要一些时间(或者您甚至可能需要雇用新的开发人员 =))。

WPF 方法在很多方面都比 WinForms 的方法好:查看styles and triggersdata bindingcontrol templatingeventing model

我建议您开始探索它,但请等待WPF 4(和boring MSDN page)开始实际迁移,因为它会变得更好并缩小一些非常烦人的差距。

【讨论】:

  • +1,关于烦人的差距的好点,你知道 WPF 4 的日期吗?
  • 我以为它是与 .NET 4 一起发布的,不是吗?
  • @Ash - VS2010 / .NET 4(包括 WPF 4)将于 2010 年 4 月中旬发布
【解决方案2】:

首先,WPF 的工作方式与 Windows 窗体完全不同,并且可能需要不同的方法来构建和设计应用程序。如果您按照设想的方式进行操作,至少效果会更好。

对于单个 Windows 窗体控件,这应该不是问题。有一个 WindowsFormsHost 可以让您在 WPF 中包含 Windows 窗体控件。

【讨论】:

    【解决方案3】:

    我不推荐从 winforms 到 WPF 的更改,除非您有 WPF 满足的特定要求 - WPF 并不是要替代,只是更适合图形丰富的应用程序的替代方案。

    如果您确实有特定要求,那么您可能还需要考虑将 WPF 控件嵌入到 winforms 应用程序中,而不是转换整个应用程序。

    【讨论】:

    • 好吧,并不是说我们会在启动新应用程序时转换当前应用程序。
    • 不仅适用于“图形丰富”的应用程序——即使对于那些旧的战舰灰色应用程序,WPF 还具有更强大的架构(解耦代码和 UI)和轻松完成简单事情的能力(如模板化列表),这是 WinForms 中的一项主要工作。 (但以丢失一些重要控件为代价,因此您需要努力获取或编写替换。)关于增量迁移和互操作的好点!
    【解决方案4】:

    学习曲线上手很慢,但一旦你明白了,一切都开始变得有意义了。我们在办公室里有“Pro WPF in C# 2008”一书,它对我们很有帮助。当然,大多数事情都会被谷歌搜索以找到答案,但要找出为什么会以本书的方式完成某些事情是一个很大的希望 - 无论如何对我来说。

    有一些令人讨厌的功能,但它的 WPF 仍然是相当新的。像大多数事情一样,如果您遇到问题,可能有人以前遇到过它并且那里有答案!

    J

    【讨论】:

      【解决方案5】:

      查看这里的数据网格:http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29117

      WPF 的主要障碍就是需要学习大量新内容(如果您希望正确使用它)。如果您的日程安排很紧,我会三思而后行,但如果您有 6 个月的空闲时间,这可能是值得的……

      【讨论】:

      • 这不仅仅是新东西的数量,而是 WinForms 和 WPF 之间的深层结构差异,例如大量使用数据绑定和模板而不是自定义控件的关键作用。
      • 那是我的(交付不佳)观点;你必须学习新技术以及如何应用它们。
      【解决方案6】:

      就我的经验而言,从 Windows 窗体迁移到 WPF 需要重新学习。过渡几个月后,大多数变化都变得完全有意义。 WPF 消除了与使用 Windows 窗体相关的许多挫败感。它提供了真正丰富的 UI 开发体验,尤其是在与设计师合作时。我强烈推荐 Daniel Solis 的 WPF 插图作为学习辅助工具。

      关于网格,Syncfusion 提供了一个 WPF 网格控件,可实现您所要求的功能。它实现了真正的虚拟模式,具有单元级自定义、打印和导出到包括 Excel 在内的多种格式。 免责声明 - 我为 Syncfusion 工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多