この記事では、Microsoft によって現在保守されている Windows UI フレームワークの概要を説明し、その機能を比較します。
Microsoft では、UI フレームワークとアプリ プラットフォームの両方を作成しています。 アプリ プラットフォームには通常、UI フレームワークが含まれますが、UI フレームワークはスタンドアロン (アプリ プラットフォームには付属していません) か、複数のアプリ プラットフォームで使用できます (「 アプリ プラットフォームの選択」を参照)。
ここで説明するフレームワークには、Windows App SDK (WinUI 3) と UWP (WinUI 2)、Windows Presentation Foundation (WPF)、Windows フォーム (WinForms) の両方の WinUI が含まれます。
ユーザー インターフェイスの基礎
最新の Windows アプリをビルドするときは、選択できる UI フレームワークが用意されています。 UI フレームワークは、組み込みのコントロール、スタイル、アニメーション、入力処理などをアプリに提供します。
Windows アプリのユーザー インターフェイスの作成には、主に 5 つのコンポーネントがあります。 これらのコンポーネントは、通常、各 UI フレームワークに組み込まれます。
-
コントロールは、コンテンツを表示したり、操作を有効にしたりする UI 要素です。 コントロールは、ユーザー インターフェイスの構成要素です。
UWP、WinUI 2、WinUI 3 で使用できる Button コントロールの例を次に示します。 このコントロールをアプリに配置すると、UI フレームワークによって提供される既定のデザインが自動的に受け取ります。
スタイルは、アプリのデザイン全体で使用できる色、文字体裁、アイコン、Fluent 素材で構成され、真にユニークなエクスペリエンスを作成できます。
WinUI 2 と WinUI 3 で使用できる Acrylic というスタイル コンポーネントの例を次に示します。 アクリルは、アプリ内のサーフェスまたはアプリの背景として使用できるブラシです。 半透明のテクスチャを提供します。
-
エンド ユーザーは、アプリを操作し、さまざまな方法でアプリに入力 (選択や入力など) を提供できます。 入力の例をいくつか次に示します。
- マウス
- 触れる
- ゲームパッド
- ペン
- キーボード
- Surface Dial(サーフェス ダイアル)
- タッチパッド
- スピーチ
-
エンド ユーザーは、さまざまなデバイス上の Windows アプリにアクセスします。UI フレームワークは、特定のデバイスのみをサポートできます。 Windows アプリを実行するための一般的なデバイスは次のとおりです。
- PC (多くの場合、"デスクトップ" と呼ばれますが、ノート PC も含まれます)
- 錠剤
- HoloLens (英語)
- Xboxの
- Surface ハブ
-
組み込みのアニメーションを使用すると、アプリの外観を洗練させ、Windows 全体でファーストパーティ アプリとの一貫性を実現できます。
UWP、WinUI 2、WinUI 3 の組み込みアニメーションの例は、エンド ユーザーがライト モードとダーク モードを切り替えたときに発生するアニメーションです。 エンド ユーザーが PC 全体のモードを切り替えると、アプリの UI も画面切り替えアニメーションで自動的に更新されます。
-
1 人のユーザーごとにアプリを快適に使用できるようにするには、アクセシビリティを考慮する必要があります。
UI フレームワークは、目的に合ったキーボード動作、スクリーンリーダーのサポートなどを備えたコントロールとスタイルに対する組み込みのアクセシビリティを提供します。 多くは、スクリーンリーダーの操作など、カスタム コントロールでアクセス可能なアクションの API も提供しています。
UI フレームワーク
Microsoft によってリリースされる各 UI フレームワークには、固有の機能があり、さまざまな設計言語に従い、エンド ユーザーにさまざまなエクスペリエンスが提供されます。 このセクションでは、アプリのビルドを開始するときに選択するすべての主要な UI フレームワークを比較します。
次の表は、これらの UI フレームワーク間のいくつかの主要な機能の概要を示しています。 各フレームワークの詳細については、以下のタブを参照してください。
能力 | Windows アプリ SDK (WinUI 3) | UWP 用 WinUI 2 | WPF(Windows Presentation Foundation) | WinFormsの |
---|---|---|---|---|
言語のサポート | C#/.NET 6 以降、C++/WinRT | C#/.NET ネイティブ、C++/WinRT、C++/CX、VB | C#/.NET 6 (以降) と .NET Framework、C++/CLI (C++ 用マネージド拡張機能)、F#、VB | C#/.NET 6 (以降) と .NET Framework、C++/CLI (C++ 用マネージド拡張機能)、F#、VB |
サポートされるデバイス | PC (ノート PC とタブレットを含む)、すべての Windows 10 デバイスのサポートは近日公開予定です | すべての Windows 10 デバイス (PC、タブレット、HoloLens、Xbox、Surface Dial など) | デスクトップ PC とノート PC | デスクトップ PC とノート PC |
サポートされている入力 | サポートされているすべての Windows 10 入力 | サポートされているすべての Windows 10 入力 | マウスとキーボード | マウスとキーボード |
サポートされている Windows OS のバージョン | Windows 10 バージョン 1809 以降 | バージョン 1703 以降Windows 10 | Windows XP 以降 | Windows XP 以降 |
WebView のサポート | Chromium ベースの WebView2 | 非クロムウェブビュー | WebView2 のサポートは近日公開予定 | WebView2 のサポートは近日公開予定 |
オープン ソース | もうすぐです | イエス | はい (.NET 6 以降のみ) | はい (.NET 6 以降のみ) |
これらの各 UI フレームワークの詳細については、次のタブの情報を参照してください。
Windows アプリ SDK (WinUI 3)
ほとんどの新しい Windows アプリでは、ユーザー インターフェイスを構築するために、Windows App SDK (WinUI 3) を使用した WinUI をお勧めします。 WinUI 3 は、最新のユーザー インターフェイス (UI) パターンを使用して、一貫性のある直感的でアクセスしやすいエクスペリエンスを提供します。
WinUI 3 は Windows OS から完全に切り離され、Windows アプリ SDK の一部として出荷されます。これは、Windows アプリ開発プラットフォームの次の進化を表す一連のツールとコンポーネントです。
WinUI 3 は、WinUI の最新世代です。 WinUI 2 と 3 は、同じコントロール、スタイル、およびその他の UI の基礎の多くを共有します ( WinUI 2 と WinUI 3 の比較を参照)。
WinUI 3 で有効になっている主要なアプリ シナリオ
- さまざまな最新の入力を使用して、さまざまな最新のデバイスで実行する必要がある最新の Windows アプリ
- C++ で記述されたデスクトップ/Win32 アプリ
- DirectX と Win2D を利用するグラフィックスが多いアプリまたはゲーム
- 高パフォーマンスを必要とする多くの統合 Web コンテンツを含むアプリ
- Windows OS やその他のファースト パーティの Windows アプリで "適切に適合する" エクスペリエンスを提供することを目指すアプリ
WinUI 3 の役に立つドキュメント
- 概要: WinUI 3
- はじめに: 初めての WinUI 3 プロジェクトを作成する
- XAML の記述: XAML プラットフォーム
- API リファレンス: WinUI API リファレンス
- コントロール: コントロールの概要
- 入力: 入力と対話
- モーション: Windows アプリのモーション
- アクセシビリティ: Windows アプリの使いやすさ
- サンプル: WinUI 3 ギャラリー アプリ
Windows developer