Может быть, глупый вопрос, но когда я добавляю элемент в проект WPF, Visual Studio предлагает мне UserControl, а не Window. Является ли это попыткой побудить меня делать MVVM, моя настройка нарушена, или есть какая-то другая причина, о которой я не думал?
Почему Visual Studio не хочет, чтобы я добавлял новое окно в мой проект WPF?
Ответ 1
Возможно, ваш проект сконфигурирован как проект WinForms или, возможно, как библиотека классов. Если он создан как один из них, вы можете добавить WPF UserControl, к сожалению.
Конечно, нет никаких технических оснований для этого ограничения, поэтому вы можете копировать/вставлять один из другого проекта или воссоздавать/изменять проект в качестве проекта WPF.
Я не уверен, что вы точно меняете, чтобы сделать проект WPF в глазах VS. Вы можете попробовать создать новый проект и отличить его от своего текущего проекта. Скорее всего, вам нужно будет немного редактировать текст в вашем файле .csproj
.
Ответ 2
Добавьте это в свой первый <PropertyGroup>
элемент в csproj:
<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>
Ответ 3
Попробуйте запустить devenv /installvstemplates
до reset установленные шаблоны.
Я использовал это раньше, когда пользовательский элемент управления WPF таинственным образом исчез из моего добавления нового списка.
В моем проекте WPF, когда я нажимаю "Добавить", я получаю следующие параметры (включая Window).
Так что я боюсь, что это ваша настройка.
Ответ 4
не использовать Visual Studio 2015 Microsoft Blend... чтобы открыть свой проект.. откройте свой проект в Visual Studio - Microsoft Visual Studio,, см. в строке заголовка