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

时间:2009-09-27 20:31:17

标签: wpf visual-studio-2008 window

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

4 个答案:

答案 0 :(得分:21)

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

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

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

答案 1 :(得分:17)

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

<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

以下是一个例子:

<?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>

变为:

<?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>

答案 2 :(得分:0)

尝试运行 devenv /installvstemplates 重置已安装的模板。 我之前使用过这个,当WPF用户控件从我的添加新列表中神秘消失时。

在我的WPF项目中,当我单击Add时,我会得到以下选项(包括Window)。

Add New Options

所以我担心这是你的设置。

答案 3 :(得分:0)

不要使用Visual Studio 2015 Microsoft Blend ... 打开你的项目.. 在Visual Studio中打开您的项目 - Microsoft Visual Studio ,,, 见标题栏