Windows アプリ開発のVisual Studio

Visual Studio は、WinUI と Windows アプリ SDK を使用して Windows アプリをビルドする場合に推奨される IDE です。 これは、XAML ベースのアプリ開発用に構築された Windows プラットフォームとツールとの緊密な統合を提供します。

Windowsアプリ開発者向けの主な機能は次のとおりです。

  • XAML ホット リロード — アプリの実行中に XAML マークアップを変更し、再起動せずにすぐに変更が適用されるのを確認します
  • XAML ライブ ビジュアル ツリー - 実行中のアプリのランタイム ビジュアル ツリーを調べて、レイアウトの問題をデバッグし、要素階層を理解します
  • XAML および C#/C++ 用の IntelliSense - マークアップとコードビハインドの両方について、コード補完、クイック ヒント、およびエラーの強調表示を取得します
  • 統合デバッグ - XAML とコードにブレークポイントを設定し、データ バインディングを検査し、UI レンダリングの問題を診断する

開始するには、「 WinUI 3 プロジェクトを作成して実行する」を参照してください。

WinUI project テンプレート

Visual Studioには、WinUI アプリをすばやく作成するのに役立つプロジェクト テンプレートが含まれています。 検索するには、File>New>Project を開き、プロジェクトの種類のドロップダウンから WinUI でフィルターをかけるか、WinUI を検索します。

WinUI プロジェクト テンプレート

アプリ テンプレート

開始元にしたいアプリ シェルに基づいてテンプレートを選択します。 テンプレート名を選択すると、そのテンプレートで作成されるアプリのスクリーンショットが表示されます。

テンプレート Language winapp CLI テンプレート 説明
WinUI 空のアプリ (パッケージ化) C# と C++ winui (C#) コンテンツのない 1 つのウィンドウ。 これは、ほとんどの新しいアプリに推奨される開始点です。
WinUI ナビゲーション アプリ C# winui-navview [ホーム]、[About]、[設定] ページを含む NavigationView シェル。
WinUI TabView アプリ C# winui-tabview タイトル バーにタブがある TabView シェル。
WinUI MVVM アプリ C# winui-mvvm CommunityToolkit.Mvvm で Model-View-ViewModel (MVVM) パターンを使用するページおよびビュー モデル。
Blank App (WAP Project でパッケージ化された) C# と C++ 該当なし 空のアプリと個別の Windows Application Packaging プロジェクト

コマンド ラインからプロジェクトを作成する

C# アプリ テンプレートは、Windows アプリ開発 CLI (winapp CLI) を介してターミナルから入手することもできます。 テーブルからテンプレート名を winapp newに渡し、 winapp runを使用してアプリをビルドして起動します。

winapp new --name MyApp --template winui-navview --use-defaults
cd MyApp
winapp run

winapp new --listを実行して、インストールされているすべてのテンプレートを確認します。 生成されたプロジェクトは標準の .csproj であるため、いつでもVisual Studioで開くことができます。 詳細については、「 WinUI での winapp CLI の使用」を参照してください。

WinUI 空のアプリ (パッケージ化)

WinUI ベースの UI を使用して、C# (.NET) または C++ (Win32) でデスクトップ アプリを作成します。 projectは、Microsoft.UI.Xaml.Window から派生した 1 つのウィンドウで始まり、独自のコントロールとページを追加できます。 これは、ほとんどの新しいアプリに推奨される開始点です。 チュートリアルについては、「 WinUI 3 プロジェクトの作成と実行」を参照してください。

WinUI 空のアプリ テンプレートから作成されたアプリ。タイトル バーが表示された空のウィンドウが表示されます。

WinUI ナビゲーション アプリ

左側のペインに NavigationView を含む C# アプリを作成します。 テンプレートには、[ホーム] ページと [About] ページ、設定項目、およびそれらの間を切り替えるナビゲーション コードが含まれます。

WinUI ナビゲーション アプリ テンプレートから作成されたアプリ。ナビゲーション ペインに [ホーム]、[概要]、[設定] 項目、および [ホーム] ページが表示されます。

WinUI TabView アプリ

タイトル バーに拡張される TabView を使用して C# アプリを作成します。 テンプレートには、[ホーム] タブと [バージョン情報] タブと、新しいタブを追加するためのボタンが含まれています。

タイトル バーに [ホーム] タブと [バージョン情報] タブが表示されている WinUI TabView アプリ テンプレートから作成されたアプリ。

WinUI MVVM アプリ

MVVM パターンを使用してロジックから UI を分離する C# アプリを作成します。 このテンプレートは、監視可能なプロパティとコマンドに CommunityToolkit.Mvvm を使用し、ビュー モデルにバインドされたカウンターを表示します。

WinUI MVVM アプリ テンプレートから作成されたアプリ。Hello、WinUI!見出しと、インクリメント ボタンとデクリメント ボタンを含むカウンター。

空のアプリ (WAP Project でパッケージ化)

上記の WinUI 空のアプリ (パッケージ化) テンプレートと同じですが、ソリューションに別の Windows アプリケーション パッケージ プロジェクト を追加します。 このprojectでは、配布用の MSIX パッケージへのアプリのビルドが処理されます。 より簡単なセットアップを希望する場合は、代わりに single-project MSIX を使用して、個別のパッケージ化projectを維持しないようにすることができます。

コンポーネント テンプレートとテスト テンプレート

これらのテンプレートは、WinUI アプリと共に動作するライブラリとテスト プロジェクトを作成します。

テンプレート Language winapp CLI テンプレート 説明
WinUI クラス ライブラリ C# winui-lib WinUI アプリ間でコードと UI コンポーネントを共有するための.NET クラス ライブラリ (DLL)。
Windows ランタイム コンポーネント C++ 該当なし Windows ランタイム コンポーネントプログラミング言語に関係なく、WinUI ベースの UI を使用するすべてのアプリで使用できる C++/WinRT で記述されています。
WinUI 単体テスト アプリ C# と C++ winui-unittest (C#) アプリに対して自動テストを記述して実行するための MSTest project。

WinUI 項目テンプレート

項目テンプレートを使用すると、既存の WinUI projectに新しいファイルを追加できます。 ソリューション エクスプローラー でプロジェクトを右クリックし、Add>New Item を選択し、 WinUI タブを選択します。

WinUI 項目テンプレート

テンプレート Language 説明
空白ページ C# と C++ Microsoft.UI.Xaml.Controls.Page クラスから派生した新しいページを定義する XAML ファイルとコード ファイルを追加します。
空白のウィンドウ C# と C++ Microsoft.UI.Xaml.Window クラスから派生した新しいウィンドウを定義する XAML ファイルとコード ファイルを追加します。
コンテンツ ダイアログ C# Microsoft.UI.Xaml.Controls.ContentDialog クラスから派生した新しいダイアログを定義する XAML ファイルとコード ファイルを追加します。 詳細については、「ダイアログ コントロール」を参照してください。
リソース ディクショナリ C# と C++ XAML リソースの空のキー付きコレクションを追加します。 詳細については、「 ResourceDictionary および XAML リソース参照」を参照してください。
リソース ファイル (.resw) C# と C++ アプリの文字列と条件付きリソースを格納するためのファイルを追加します。 この項目を使用すると、アプリのローカライズに役立ちます。 詳細については、「 UI およびアプリ パッケージ マニフェストの文字列をローカライズする」を参照してください。
テンプレート化されたコントロール C# と C++ 既定のスタイルでテンプレート 化されたコントロールを作成するためのコード ファイルを追加します。 テンプレート 化されたコントロールは、 Microsoft.UI.Xaml.Controls.Control クラスから派生します。

この項目テンプレートの使用方法を示すチュートリアルについては、「 XAML テンプレート コントロールの構築」を参照してください。 テンプレート化されたコントロールの詳細については、「 カスタム XAML コントロール」を参照してください。
ユーザー コントロール C# と C++ Microsoft.UI.Xaml.Controls.UserControl クラスから派生するユーザー コントロールを作成するための XAML ファイルとコード ファイルを追加します。 通常、ユーザー コントロールは関連する既存のコントロールをカプセル化し、独自のロジックを提供します。

ユーザー コントロールの詳細については、「 カスタム XAML コントロール」を参照してください。

C# プロジェクトのコマンド ラインからこれらの項目を追加するには、一致する dotnet new 項目テンプレート ( dotnet new winui-page -n SettingsPageなど) を使用します。 すべての項目テンプレートを表示するには、dotnet new list winuiを実行します。

こちらも参照ください