0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「新しい項目の追加」ウィンドウに UserControl しか表示されないときの対処法【C#】【WPF】【Visual Studio】

Posted at

毎度まいど対処法を忘れてしまうのでメモ。

↓ のように、「新しい項目の追加」ウィンドウの WPF カテゴリに「ユーザーコントロール (WPF)」のみが表示され、ウィンドウやリソースディクショナリなどが見当たらない場合があります。

image.png

はじめプロジェクトを作成する際に WPF 関連のテンプレートを使用せず、後から WPF 関連のファイルを追加しようとしたときに出くわしがちな問題です。

あなたが初心者の場合……「visualstudio 新しい項目 見つからない」などで検索してこの記事へ辿り着いたのだとしたら、ただ単に Visual Studio Installer で必要なコンポーネントをインストールできていないだけの可能性があります。まずは必要なものが全て導入できているか確認を。
以下の記事は Windows Forms の例ですが、WPF の場合もほぼ同様です。

参考: 追加したい新しい項目にWindowsフォームが無い場合の解決方法 - Qiita

ズバリ原因: Visual Studio に WPF のプロジェクトだと認識されていない

プロジェクトファイル (*.csproj) へ ↓ の ProjectTypeGuids 要素を追記すれば OK です。

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

この要素を追加することによって、そのプロジェクトが WPF を使っていることを Visual Studio へ明示することができます。

*.csproj への追記例

Before

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" 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>{00000000-0000-0000-0000-000000000000}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>Hoge.Fuga.Piyo</RootNamespace>
    <AssemblyName>Hoge.Fuga.Piyo</AssemblyName>
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <Deterministic>true</Deterministic>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
  ...以下略

After

  <?xml version="1.0" encoding="utf-8"?>
  <Project ToolsVersion="15.0" 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>{00000000-0000-0000-0000-000000000000}</ProjectGuid>
      <OutputType>Library</OutputType>
      <AppDesignerFolder>Properties</AppDesignerFolder>
      <RootNamespace>Hoge.Fuga.Piyo</RootNamespace>
      <AssemblyName>Hoge.Fuga.Piyo</AssemblyName>
+     <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
      <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
      <FileAlignment>512</FileAlignment>
      <Deterministic>true</Deterministic>
    </PropertyGroup>
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    ...以下略

参考

Why doesn't Visual Studio want me to add a new window to my WPF project? - Stack Overflow

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?