wpf - Windows 窗体和 WPF 共存

标签 wpf user-interface forms frameworks

我需要使应用程序与所有 NET Framework 兼容:2、3、3.5 和 4。

此外,我想开发一个应用程序,当在仅安装了 Framework 2 的 PC 上执行时,GUI 是使用 Windows Forms 制作的,但如果 PC 使用的是 Framework 3 或更高版本,则 GUI 是使用 WPF 完成的.


我用 NET 2 和 Windows 窗体开发了一个应用程序。 我使用 NET 3、4 和 3.5 测试了这个应用程序,它工作正常。

我最近使用 WPF 更新了 GUI,这些更改很简单,因为我使用数据绑定(bind)范例开发了界面。 这种选择使我能够轻松地从 Windows 窗体切换到 WPF。


我克服了使用本指南创建单个应用程序(用于 Windows 窗体)以使用任何框架执行的问题:http://msdn.microsoft.com/it-it/library/w671swch%28v=VS.100%29.aspx .

现在我想确保如果 PC 是 NET 3.5 或更高版本,则使用 WPF 制作的 GUI 安装应用程序。

我尝试遵循一些准则,例如:http://msdn.microsoft.com/it-it/library/433ysdt1.aspx ,但没有成功。 我对如何进行感到非常困惑。


应用程序不应在 PC 上安装任何东西,只需使用那里的东西即可。

提前致谢, 塔劳。

最佳答案

如果您的应用程序需要与所有这些版本兼容,那么您的意思是:它需要是 .NET 2 应用程序。否则,.NET 3(或更高版本)应用程序将无法正常工作,因为它无法在启动时找到所需的程序集。

也就是说,由于 .NET 3 构建于 .NET 2 之上,我相信如果框架可用,您可以找到一种动态加载 .NET 3 程序集的方法。不过,这不会很漂亮。

但是,即使您做到了这一点,应用程序的基础在 WinForms 和 WPF 下也大不相同,因此您会发现您正在重写很多代码。简单地替换 MVC 应用程序的 View 可能是不够的(除非您愿意编写一些非常复杂的 View ...)。

我的建议是要么编写两个应用程序,要么(优先考虑)在 .NET 4 中编写并将框架作为安装程序的一部分包含在内。假设这是一个商业应用程序,那么它要么是那样,要么只是坚持使用 WinForms - 我无法想象开发开销可能是值得的。

关于wpf - Windows 窗体和 WPF 共存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5105819/

相关文章:

wpf - 根据数据更改所选列表框项目的背景/突出显示颜色

c# - 将宽度/高度设置为在 xaml 中成比例?

MATLAB:为图中的数据光标永久设置 "Text Update Function"

iphone - 让我的 View 像 NSAlertView 一样漂亮

随父级缩放的 JavaFX 布局

html - 为什么 label 元素有一个 form 属性?

c# - 当 Bool 变量变为真时更改标签

javascript - 如何从 Form-POST 操作和 JavaScript 将 CSS 和 HTML 元素呈现回客户端浏览器?

javascript - JS语法错误: DOCTYPE html

c# - 在 xaml 窗口和用户控件 WPF 之间传递参数