c# - 将 csproj 文件从 winform 转换为 wpf

标签 c# .net wpf winforms

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

我需要

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

然后,我将在 View 和 View 模型文件之间手动拆分旧表单文件的内容。

有什么方法比从头开始更容易做到这一点?

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

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

最佳答案

对于那些不想自己进行比较的人来说,简短的回答是 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 了解有关项目类型 guid 的更多信息.

关于c# - 将 csproj 文件从 winform 转换为 wpf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24001202/

相关文章:

wpf - 条件绑定(bind)属性不起作用?

c# - FIFO编程的主线程调度程序?

c# - ASP.NET MVC 是在队列中还是同时执行请求

c# - .NET Core/EF 6 - 依赖注入(inject)范围

c# - 我可以复制 Moq Mock 实现吗?

c# - .Net BinaryWriter 在检查流位置时自动刷新流

c# - 将 .Wav 文件按标题连接成 1 个临时文件

c# - 如何使用 Dapper 映射 MySQL JSON 列

c# - 如何获取边框内的对象

c# - 无法使用 DataTemplate WPF 将 InputBinding 应用于整个 ListBoxItem