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

bsh*_*ett 9 .net c# wpf console port

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

RAJ*_*RAJ 11

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

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

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

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{58688A7B-82F4-4229-949A-C4249DAB43FC}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ConsoleApplication1</RootNamespace>
<AssemblyName>ConsoleApplication1</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<StartupObject>
</StartupObject>
Run Code Online (Sandbox Code Playgroud)

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


Gre*_*mer 6

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

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


kmo*_*ote 5

我开始编辑从RAJ答案(如步骤可以看出,存在不完全的),但我的变化是有点过于激烈,所以我决定分开后我的答案。

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

  1. 添加参照以下组件:
    • PresentationCore
    • 展示框架
    • Windows基础
    • 系统文件
  2. 打开项目属性。在“应用程序”选项卡上,将输出类型更改为“ Windows应用程序”。
  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元素的某处添加以下行:

    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
    
    Run Code Online (Sandbox Code Playgroud)
  7. 刷新在Visual Studio项目。