Może głupie pytanie, ale kiedy dodaję element do projektu WPF, Visual Studio oferuje mi tylko UserControl, a nie Window. Czy to próbuje zachęcić mnie do zrobienia MVVM, czy moja konfiguracja jest zepsuta, czy jest jakiś inny powód, o którym nie pomyślałem?Dlaczego program Visual Studio nie chce, żebym dodał nowe okno do mojego projektu WPF?
Odpowiedz
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
.
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).
Więc obawiam się, że twoja konfiguracja.
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>
Dobra wskazówka! Działa dla mnie –
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? –
Nie działa dla mnie. –
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
- 1. Dlaczego program Android Studio chce, żebym używał funkcji For Each zamiast For For Loop?
- 2. Visual Studio dodanie obrazu do projektu
- 3. Visual Studio 2015 "Nowe okno"/instancje Muiltiple dla plików HTML
- 4. Dlaczego program Visual Studio nie pozwala mi przejść do Type.GetType()?
- 5. Jak zapobiec dodawaniu przez program Visual Studio 2010 dużego pliku SQL do mojego projektu w C++?
- 6. Entity Framework dodał s do mojego .dbo
- 7. Dlaczego program Visual Studio nie rozpoznaje nazw moich klas CSS?
- 8. Dlaczego program Visual Studio próbuje połączyć "freeglutd.lib"?
- 9. Dlaczego CMake dodaje niepotrzebne biblioteki do projektu Visual Studio?
- 10. Dlaczego program Visual Studio oznaczył moją klasę jako składnik?
- 11. Stwórz nowe repozytorium svn dla mojego projektu
- 12. Dlaczego program Visual Studio 2010 nie złamał nieobsługiwanego wyjątku?
- 13. Okno Punktów programu Visual Studio: Co pokazuje program TreeView?
- 14. Visual Studio dodaje plik bin do projektu
- 15. Dlaczego program Visual Studio automatycznie włącza ponownie "usługi aplikacji klienckich"?
- 16. Dlaczego Jython nie chce znaleźć mojego pakietu Java?
- 17. Dlaczego program Visual Studio nie może znaleźć pliku System.Web.Mvc.resources.dll?
- 18. Dlaczego program Visual Studio domyślnie nie tworzy klasy publicznej?
- 19. Visual Studio 2017 nowe .csproj InternalsVisibleTo
- 20. Visual Studio 2012 niepublikowanie projektu
- 21. WPF, mieszanka Visual Studio?
- 22. Program Visual Studio ulega awarii podczas otwierania projektu
- 23. Projekt iOS chce, żebym uaktualnił kodek i debuger asemblera
- 24. Dlaczego program DebugView nie wyświetla komunikatów debugowania, gdy program Visual Studio wykonuje
- 25. Program do edycji kodu Visual Studio
- 26. Dlaczego Android Studio mówi mi, żebym używał getSupportActionBar() zamiast getActionBar()?
- 27. Jak dodać makra do projektu visual studio?
- 28. dlaczego nie mogę dołączyć do mojego procesu?
- 29. Utwórz program Visual Studio programowo
- 30. Okno WPF. Jak wykryć pierwszy program?
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} ProjectTypeGuids> –
Benjol
Bez problemu. Nie ma za co. –
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