2009-09-27 14 views
22

愚かな質問かもしれませんが、WPFプロジェクトにアイテムを追加すると、Visual StudioではWindowではなくUserControlのみが提供されます。これは私にMVVMをやるよう奨励しようとしているのですか、私のセットアップが壊れているのですか?それとも私が考えなかった何か他の理由がありますか?Visual StudioでWPFプロジェクトに新しいウィンドウを追加したくないのはなぜですか?

答えて

20

あなたのプロジェクトはおそらく、WinFormsプロジェクトとして、またはおそらくクラスライブラリとして構成されています。これらのいずれかとして作成されている場合、残念なことにWPF UserControlを追加することしかできません。

もちろん、この制限の技術的理由はありません。そのため、別のプロジェクトからコピー/貼り付け、またはプロジェクトを再作成/変更してWPFプロジェクトにすることができます。

私はVSの目でWPFプロジェクトにするために正確に何を変更するか分かりません。新しいプロジェクトを作成し、それを現在のプロジェクトと比較してみてください。ほとんどの場合、.csprojファイルでテキスト編集を行う必要があります。

+6

ありがとう、私は別のプロジェクトでこれをコピーして貼り付けて、同じように表示されます: {60dc8134-eba5-43b8-bcc9 -Bb4bc16c2548}; {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} Benjol

+0

問題ありません。どういたしまして。 –

+3

この回答を見てください。既存のプロジェクトにWPFサポートを追加する方法を詳しく説明します:http://stackoverflow.com/questions/450377/upgrading-a-winforms-app-to-wpf – santiagoIT

0

devenv /installvstemplatesを実行して、インストールしたテンプレートをリセットしてください。 WPF User Controlが私の新しいリストを追加して不思議に姿を消したときにこれを使用しました。

私のWPFプロジェクトで、[追加]をクリックすると、次のオプション(ウィンドウを含む)が表示されます。

Add New Options

だから私はそれはあなたのセットアップです怖いです。

16

あなたの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> 
+1

良いヒント! –

+0

これを試してみましたが、VSがそのタグを追加すると、VSが "同じ名前のプロジェクトが既にソリューションで開いています"と言って、プロジェクトを読み込めません。何か案は? –

+0

私のためには機能しません。 –

0

は、Visual Studio 2015のMicrosoftを使用していませんあなたのプロジェクトを開くには をブレンドしてください。 あなたのpを開きますVisual Studioで描画する - Microsoft Visual Studio ,,, タイトルバーに表示

関連する問題