从Winforms迁移到WPF

时间:2015-03-25 16:58:34

标签: c# .net wpf winforms migration

我们有一个基于.Net 1.1 Framework和Winforms构建的旧应用程序。我们计划将其迁移到最新版本的.Net。

以下是我脑海中浮现的一些问题:

  1. 我们应该使用Winforms还是WPF?
  2. 我们希望设计和结构与现在完全相同。
  3. 迁移时我会遇到什么样的陷阱?
  4. 我可以在哪里查找迁移过程吗?
  5. 还有其他建议吗?

1 个答案:

答案 0 :(得分:8)

  

我们应该使用Winforms还是WPF?

这是一个非常广泛的问题。但我对此的回答是这样的。 Winforms设计师是一个痛苦的经历,它不像WPF那样灵活,所以如果这对你很重要,那么你应该这样做。

  

我们希望设计和结构与现在完全相同。

你在Winforms中做的任何事都可以在WPF中复制,所以不用担心。

  

迁移时我会遇到什么样的陷阱?

有太多人说我们的迁移最常见的一个是转换WinForms中的现有逻辑(是的,它是一个糟糕的,外包的,充满业务逻辑的传统WinForms)并将其连接到WPF元素。这个过程本身并不复杂,但当你有太多交织在一起的碎片时,它会变得非常难看。

  

我有没有可以查找以查看迁移过程的地方?

迁移过程几乎必须是迭代的。因此,根据我的研究(文章,StackOverflow答案等),许多人这样做的方式是通过ElementHosts。

1)将您想要切换到WPF的WinForms的某个部分定位,然后将其取出。

2)将其替换为ElementHost。

3)然后在那个ElementHost中,你将拥有你新重写的WPF对应物。

4)测试它确保它与其余元素一起正常工作。

5)转到第1步,直到该窗口上剩下的东西被替换(你可以做任何你想要更换窗口上的元素的方式,你可以做头,中,页脚或顶部,底部取决于你的具体情况)。

6)一旦更换了大部分内容,您就可以将所有这些WPF用户控件组合到WPF窗口中。