2009-09-27 6 views

Odpowiedz

20

Twój projekt prawdopodobnie jest skonfigurowany jako projekt WinForms lub ewentualnie jako biblioteka klas. Jeśli jest on utworzony jako jeden z tych elementów, można niestety dodać jedynie formant UserControl WPF.

Oczywiście, nie ma technicznych przyczyn tego ograniczenia, więc można skopiować/wkleić jeden z innego projektu lub odtworzyć/zmienić swój projekt na projekt WPF.

Nie jestem pewien, co dokładnie zmienisz, aby był to projekt WPF w oczach VS. Możesz spróbować utworzyć nowy projekt i przenieść go do bieżącego projektu. Najprawdopodobniej będziesz musiał edytować tekst na swoim pliku .csproj.

+6

Dzięki, kopiować, wklejać to z innego projektu, a teraz zobaczyć taki sam jak Ty: {60dc8134-eba5-43b8-bcc9 -bb4bc16c2548}; {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} Benjol

+0

Bez problemu. Nie ma za co. –

+3

Spójrz na tę odpowiedź. Zawiera szczegółowe informacje dotyczące dodawania obsługi WPF do istniejącego projektu: http://stackoverflow.com/questions/450377/upgrading-a-winforms-app-to-wpf – santiagoIT

0

Spróbuj uruchomić devenv /installvstemplates, aby zresetować zainstalowane szablony. Używałem tego wcześniej, gdy kontrola użytkownika WPF w tajemniczy sposób zniknęła z mojej nowej listy.

W moim projekcie WPF, po kliknięciu przycisku Dodaj otrzymuję następujące opcje (w tym okno).

Add New Options

Więc obawiam się, że twoja konfiguracja.

16

Dodaj to do swojej pierwszej <PropertyGroup> elementu w csproj:

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

Oto przykład:

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

Staje:

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

Dobra wskazówka! Działa dla mnie –

+0

Próbowałem tego, ale jeśli dodaję ten tag, VS nie załaduje projektu, mówiąc mi, że "projekt o tej samej nazwie jest już otwarty w rozwiązaniu". Jakieś pomysły? –

+0

Nie działa dla mnie. –

0

nie używać Visual Studio 2015 Microsoft Połącz ... , aby otworzyć projekt .. otwórz swój p rojekt w Visual Studio - Microsoft Visual Studio ,,, zobaczyć w pasku tytułowym