升级它应用程序,以WPF
-
19-08-2019 - |
题
我有一个项目,我写了几年前,在它.为了更好地帮助我学习WPF,我想重写这在WPF.理想情况下,我想只是修改当前的项目,我已经写UI在WPF,而不是创建一个新的项目。
我有一些问题,这样做。我做了以下(使用Visual Studio2008SP1):
- 变更的目标的框架,从2.0到3.5。
- 加PresentationCore,PresentationFramework,并WindowsBase引用。
在这一点上,我注意到有些不对劲。当我右击的项目和选定的增加|新项目,我没有选择,以创建一个WPF窗的唯一WPF类我可以创建一个WPF的用户控制。因为我有一些其他WPF项目的周围,我复制的应用程序。样式* 和Window1.样式* 从该项目向地雷,并更新它们作为必要的(基本上只是改变名字空间,项目的名称空间是我的项目)。
然后我被删除的程序。cs(其先前所载的主要方法,显示的主要WinForm的形式),以及建造项目。我得到了错误指示,没有主要方法。
这似乎是国内Visual Studio知道,这个项目真的是它的应用程序,并不一WPF应用程序。在WPF项目(建立由选择"WPF应用程序"),在应用程序的性质,我可以设置的应用程序的实例类作为启动的对象。在我它转换的项目,这不是一个选项。
我花了快来看看的.csproj文件中的一个文本编辑器,但是我没找到任何东西会告诉Visual Studio,该项目是真的它而不是WPF.
还有什么我需要做把我的它的项目为一个"真正的"WPF项目?我有一个选项,其他比创建一个新项目,只是取代当前的项目?
更新: 我拿来看看。csproj文件,我注意到,应用程序。xaml加入作为一个页面:
<Page Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
然而,在我的其他WPF项目,它是一个ApplicationDefinition.一旦我改变了,我可以把我的应用实例作为启动的对象,我的应用程序,将运行。我仍然没有一个选项创建任何WPF比其他类型用户的控制,虽然。
解决方案
我不知道 某些 什么在项目文件中通知Visual Studio什么类型的项目正在使用,但是我猜是"ProjectTypeGuids"是关键。
我WPF项目有:
<ProjectTypeGuids>
{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};
{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
</ProjectTypeGuids>
这里是一个链接 我发现它描述了guid和什么样的项目,他们表示。你会注意到,guid开始"60DC"相匹配的名单的链接WPF应用程序。
其他提示
帆船柔道的答案为我工作将它的项目成WPF,但没有详细描述了什么是需要的;
- 打开的
csproj
文件的项目要转换。 - 搜索字符串
<ProjectTypeGuids>
-最可能也不会存在。 添加以下内标记的项目文件。如果你有多重
PropertyGroup
标记,使用的一个没有Condition
属性(例如默认的性质)。<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
Save-如果你有的项目开VS将要求重新载入该项目。
从我所看到的和测试,我现在可以很容易地加WPF Windows 和 它.我的老年它也没有问题。
遗憾的是没有。
WPF和Windows形式的项目不相容的。
- 尝试提取尽可能多的烦躁 逻辑的代码成一类图书馆
- 创建一个新的空白溶液
- 增加一个新的WPF项目的解决方案
- 添加这类图书馆的项目 解决方案
- 设置这类图书馆作为一个依赖性的 WPF项目
- 重建的windows在WPF
希望这对你的作品。
好运与这一努力!