【发布时间】:2009-10-29 03:52:01
【问题描述】:
这个问题是与同事在午餐时间交谈的结果...我读过类似WPF vs. Winforms 的问题...我个人认为长期 WPF 是要走的路。问题/问题是在此期间要做什么。
是的,WPF 确实有它的优势;不是基于 GDI/USER 构建的就是其中之一。但是在这个时间点(即 2009 年末;使用 VS2008 甚至可能是 VS2005;Silverlight3 最近发布但尚未广泛采用/部署),WPF 几乎看起来可能是一个“过度设计”的解决方案。虽然我确信这会随着时间的推移而改变,但它不会让今天的事情变得更容易,也不会在近期(比如
让我们面对现实吧,WinForms 真的简单易行;尤其是对于许多仍在“快乐”使用 MFC 的同事来说。是的,可能很难做流畅的动画、3D 图形、渐变等;但这是一个非常实用的解决方案,很多人(即 C++/MFC 开发人员)现在很容易理解。
有了这个冗长的介绍——有没有人想过/累/等等。关于使用 WPF(即 WinForms sans GDI/USER)实现(大部分)WinForms 的想法?我敢肯定,考虑到Control.Handle 之类的东西,100% 的重新实现是不可能的。但似乎许多 WinForms 控件可以使用 WPF“在后台”重新实现。或者这真的不可能吗?
通过“重新实现”,我设想删除对 System.Windows.Forms 的程序集引用,用(比如说)Microsoft.Wpf.WinForms 替换它们,然后重建我的应用。之后,我希望修复一些(相对较少的)编译器和/或运行时错误(比如 P/Invokes to Win32 APIs)。
这样的东西似乎是对 Microsoft 的各种 WinForms/WPF 互操作策略(例如 WindowsFormsHost)的一个很好的补充。例如,开发人员可以开始以更加渐进的方式使用/学习 WPF。
编辑:虽然各种“为什么?”讨论很有趣,但他们没有回答基本的技术问题:“是的,..这是如何......;或者不是,......因为......”。
【问题讨论】:
-
我知道你的目的是什么,但这真的值得这么麻烦吗?