我创建了一个控制台应用程序,后来我决定将其作为WPF应用程序运行得更好。我将输出类型更改为Windows应用程序并添加了我认为必要的引用。不幸的是,右键单击项目不允许我添加资源字典或许多其他WPF类型。我错过了什么?
答案 0 :(得分: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>**
在 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>
保存。如果您的项目在视觉上打开,它将要求重新加载项目,单击是。 多数民众赞成它,它现在作为WPF应用程序工作,你会发现添加WPF应用程序上可用的所有菜单。
答案 1 :(得分:6)
最简单的方法是创建一个新的WPF应用程序并移动代码。最好的方法是将逻辑推入业务库,这样您就可以轻松地使用控制台应用程序和wpf应用程序作为业务逻辑的表示技术,因为WPF是一种用户界面技术,而不是应用程序类型。
从极客的角度来看,如果你想解决困难的学习方法,我会创建一个单独的WPF应用程序并检查proj文件。很可能在那里有一点点可以让事情像WPF一样工作,以及一些缺失的参考资料。
答案 2 :(得分:4)
我开始编辑RAJ的答案(由于列出的步骤不完整),但我的更改有点过于激烈,所以我决定单独发布我的答案。
您可以使用以下步骤将控制台应用程序转换为WPF应用程序:
array (size=3)
1 =>
array (size=6)
'contact_id' => int 1
'exact_email_found' => int 0
'half_email_found' => int 0
'possible_by_postal_code' => int 1
'found_first_name' => int 0
'found_last_name' => int 1
3 =>
array (size=6)
'contact_id' => int 3
'exact_email_found' => int 0
'half_email_found' => int 0
'possible_by_postal_code' => int 0
'found_first_name' => int 1
'found_last_name' => int 0
2 =>
array (size=6)
'contact_id' => int 2
'exact_email_found' => int 1
'half_email_found' => int 0
'possible_by_postal_code' => int 0
'found_first_name' => int 1
'found_last_name' => int 0
(如here所述)。 更改项目类型guid。要执行此操作,请在Notepad ++或directly in Visual Studio中编辑项目文件(例如WpfApp.csproj),在第一个 PropertyGroup 元素中的某处添加以下行:
ApplicationDefinition
在Visual Studio中重新加载项目。
答案 3 :(得分:1)
与其他人一样,制作WPF的实用方法是启动一个新的WPF应用程序项目并调整您的控制台代码。然而,Gregory A Beamer指出你可能想要极客解决方案是正确的。
也许这是寻找合适选项的地方:
在菜单中,点击工具&gt;&gt;定制。在“自定义”对话框中,单击“命令”选项卡,然后单击“编辑器上下文菜单”单选按钮。您现在可以编辑VS中的所有上下文菜单。我假设这些上下文菜单会针对每种应用程序类型自动定制。用于向项目添加资源字典的上下文菜单应该位于此处。虽然手动改变它们可能是后面的痛苦,但极客的意思是它们仍然在那里。