将csproj文件从winform转换为wpf

Vin*_*ert 5 .net c# wpf winforms

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

我需要

  • 转换csproj文件,这样我就可以添加WPF窗口了
  • 该转换将"就地"完成以保持我的源代码控制整洁并避免将所有后端文件添加回其正确的文件夹中的麻烦,添加对外部依赖项的引用等.
  • 创建一个空的mainwindow.xaml(+ .cs)文件,我将使用适当的控件手动填充该文件.

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

有什么方法比从头开始更容易?

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

EDIT2:我希望整个项目和架构转换WPF(因为它是提出和回答的SO几次),我完全理解,这些是2个不同的框架和我完全愿意做手工的变化.我想转换csproj所以它将编译为WPF应用程序而不是Forms应用程序.

oth*_*thp 11

对于那些不想进行比较的人来说,简短的答案是WPF .csproj文件包含一个附加属性:

<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
Run Code Online (Sandbox Code Playgroud)

只要把它放在第一<PropertyGroup>...</PropertyGroup>部分,它应该无所谓.

这意味着{60dc8134-eba5-43b8-bcc9-bb4bc16c2548}这是一个WPF项目,它{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}表示一个C#项目.您可以从此SO问题中了解有关项目类型指南的更多信息.


Joh*_*ers 0

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

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