将csproj文件从winform转换为wpf

时间:2014-06-02 18:43:57

标签: c# .net wpf winforms

我有一个Winform应用程序,它有一个非常简单的表单,一个program.cs主文件和大约60个后端.cs文件。我想将项目转换为WPF应用程序。看here并没有显示出我想要做的任何事情。

我需要

  • 转换csproj文件,以便我可以添加WPF窗口
  • 转换要“就地”完成,以保持我的源代码控制整洁,避免将所有后端文件添加回适当文件夹的麻烦,添加对外部依赖项的引用等。
  • 创建一个空的mainwindow.xaml(+ .cs)文件,我将手动填写适当的控件。

然后,我将在视图和viewmodel文件之间手动拆分旧表单文件的内容。

这样做比从头开始更容易吗?

编辑:我宁愿不将新的WPF ui托管到旧的winforms shell中,而是用wpf替换当前的表单应用程序。

EDIT2:我想要将整个项目和体系结构转换为WPF(因为它被问及在SO上多次回答),我完全理解这些是2个不同的框架而我我完全愿意手动进行更改。我想转换 csproj ,因此它将编译为WPF应用程序而不是Forms应用程序。

2 个答案:

答案 0 :(得分:10)

那些不想自己进行比较的人的简短回答是WPF .csproj文件包含一个附加属性:

<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

只需将其放在第一个<PropertyGroup>...</PropertyGroup>部分,无论在哪里都无关紧要。

{60dc8134-eba5-43b8-bcc9-bb4bc16c2548}的含义是这是一个WPF项目,而{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}表示一个C#项目。您可以从SO question了解有关项目类型指南的更多信息。

答案 1 :(得分:0)

您的edit2似乎只想将项目类型从“Winforms”更改为“WPF”而不更改任何项目项。我不知道你为什么要这样做,但是尝试创建一个空的Winforms项目,然后创建一个空的WPF项目,然后比较两个项目文件。

无论两个空项目之间有什么区别,都要对现有的Winforms项目进行更改。