为什么Visual Studio不希望我为我的WPF项目添加新窗口?

Ben*_*jol 25 wpf window visual-studio-2008

也许是一个愚蠢的问题,但是当我将项目添加到WPF项目时,Visual Studio只提供UserControl,而不是Window.这是试图鼓励我做MVVM,我的设置是否被打破,还是有其他原因我没有想到?

Dre*_*kes 22

您的项目可能配置为WinForms项目,或者可能配置为类库.如果它是作为其中任何一个创建的,那么您很可能只能添加WPF UserControl.

当然,这种限制没有技术原因,因此您可以从另一个项目中复制/粘贴一个项目,或者重新创建/更改您的项目以成为WPF项目.

我不确定你的改变是什么让它成为VS眼中的WPF项目.您可以尝试创建一个新项目并将其区分到当前项目.您很可能必须对.csproj文件进行一些文本编辑.

  • 谢谢,我从另一个项目中复制粘贴,现在看到的与你相同:<ProjectTypeGuids> {60dc8134-eba5-43b8-bcc9-bb4bc16c2548}; {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} </ ProjectTypeGuids> (6认同)
  • 看看这个答案.它详细介绍了如何向现有项目添加WPF支持:http://stackoverflow.com/questions/450377/upgrading-a-winforms-app-to-wpf (3认同)

War*_*rty 18

将其添加到<PropertyGroup>csproj中的第一个元素:

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

这是一个例子:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{24793F93-0FD8-4EC9-B1D2-028DB489B10D}</ProjectGuid>
    <OutputType>WinExe</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>nest_spawner</RootNamespace>
    <AssemblyName>nest-spawner</AssemblyName>
    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

变为:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{24793F93-0FD8-4EC9-B1D2-028DB489B10D}</ProjectGuid>
    <OutputType>WinExe</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>nest_spawner</RootNamespace>
    <AssemblyName>nest-spawner</AssemblyName>
    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)