无法在VS 2010中将控制台应用程序转换为WPF应用程序

我创建了一个控制台应用程序,后来我决定将其作为WPF应用程序更好地运行。 我将输出类型更改为Windows应用程序并添加了我认为必要的引用。 不幸的是,右键单击项目不允许我添加资源字典或许多其他WPF类型。 我错过了什么?

最简单的方法是创建一个新的WPF应用程序并移动代码。 最好的方法是将逻辑推入业务库,这样您就可以轻松地使用控制台应用程序和wpf应用程序作为业务逻辑的表示技术,因为WPF是一种用户界面技术,而不是应用程序类型。

从极客的角度来看,如果你想解决困难的学习方法,我会创建一个单独的WPF应用程序并检查proj文件。 很可能在那里有一些东西可以让事情像WPF一样工作,以及一些缺少的引用。

我通过以下步骤将我的控制台应用程序转换为WPF应用程序
您需要做的就是在项目文件中更改项目类型guid。 1.添加对PresentationCore程序集的引用
2.添加对PresentationFramework程序集的引用
3.添加对WindowsBase程序集的引用
4.转到项目属性,然后在应用程序选项卡上将输出类型更改为Windows应用程序
5.创建WPF应用程序的新项目,并将App.xaml和MainWindow或Anyother xaml文件复制到控制台应用程序。
当你右键单击项目并选择添加时,最后得到资源字典打开你的项目文件,例如记事本上的WpfApp.csproj并添加

**{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}** 

FileAlignment之后的第一个PropertyGroup元素中,它应该看起来像

    Debug AnyCPU 9.0.30729 2.0 {58688A7B-82F4-4229-949A-C4249DAB43FC} WinExe Properties ConsoleApplication1 ConsoleApplication1 v3.5 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}   

保存。 如果您的项目在视觉上打开,它将要求重新加载项目,单击是。 这就是它,它现在作为WPF应用程序工作,你会发现添加WPF应用程序上可用的所有菜单。

我开始编辑RAJ的答案(因为列出的步骤不完整),但我的更改有点过于激烈,所以我决定分别发布我的答案。

您可以使用以下步骤将控制台应用程序转换为WPF应用程序:

  1. 添加对以下程序集的引用:
    • PresentationCore
    • PresentationFramework
    • WindowsBase
    • System.Xaml
  2. 打开项目属性。 在Application选项卡上,将输出类型更改为Windows Application。
  3. 创建新的WPF应用程序(例如将其命名为“ tempWPF ”)并将App.xaml和MainWindow.xaml(以及两者的后备.xaml.cs文件)复制到控制台应用程序。
    • 将所有出现的“ tempWPF ”替换为控制台项目的名称。
  4. 在App.xaml的“属性”窗口中,将“ 构建操作”设置为ApplicationDefinition (如此处所述)。
  5. 从项目中删除/删除Program.cs文件。 (当然,必要时从该文件重定位任何自定义逻辑)。
  6. 更改项目类型guid。 要执行此操作,请在Notepad ++中或直接在Visual Studio中编辑项目文件(例如WpfApp.csproj),在第一个PropertyGroup元素中的某处添加以下行:

     {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 
  7. 在Visual Studio中重新加载项目。

像其他人说的那样,制作WPF的实际方法是启动一个新的WPF应用程序项目并调整您的控制台代码。 但是,Gregory A Beamer指出你可能想要极客解决方案是正确的。

也许这将是寻找合适选项的地方:

在菜单中,点击工具>>自定义。 在“自定义”对话框中,单击“命令”选项卡,然后单击“编辑器上下文菜单”单选按钮。 您现在可以编辑VS中的所有上下文菜单。 我假设这些上下文菜单会针对每种应用程序类型自动定制。 用于向项目添加资源字典的上下文菜单应该位于此处。 虽然手动改变它们可能是后面的痛苦,但极客的观点是它们仍然存在。