【问题标题】:Why doesn't Visual Studio want me to add a new window to my WPF project?为什么 Visual Studio 不希望我向 WPF 项目添加新窗口?
【发布时间】:2010-12-01 20:21:03
【问题描述】:

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

【问题讨论】:

    标签: wpf visual-studio-2008 window


    【解决方案1】:

    您的项目可能配置为 WinForms 项目,或者可能配置为类库。如果它是作为其中任何一种创建的,那么不幸的是,您只能添加一个 WPF 用户控件。

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

    我不确定在 VS 的眼中你究竟做了什么改变才能使它成为 WPF 项目。您可以尝试创建一个新项目并将其与当前项目进行比较。您很可能需要对您的 .csproj 文件进行一些文本编辑。

    【讨论】:

    【解决方案2】:

    将此添加到您的 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>
    

    【讨论】:

    • 好提示!为我工作
    • 试过这个,但如果我添加那个标签,VS 无法加载项目,告诉我“一个同名的项目已经在解决方案中打开”。有什么想法吗?
    • 获取了一个 WinForms 项目并使用它升级到 WPF 项目。 2016 年 11 月就职于 Visual Studio 2015
    • VS2015 - 完美
    【解决方案3】:

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

    在我的 WPF 项目中,当我单击添加时,我得到以下选项(包括窗口)。

    所以恐怕这是你的设置。

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2021-08-02
        • 1970-01-01
        • 1970-01-01
        • 2020-02-19
        • 2012-07-09
        • 1970-01-01
        • 1970-01-01
        • 2012-07-07
        • 1970-01-01
        相关资源
        最近更新 更多