ユーザー インターフェイスと入力

この記事では、Microsoft によって現在管理されている Windows UI フレームワークの概要について説明し、その機能を比較します。

Microsoft は、UI フレームワークとアプリ プラットフォームの両方を作成しています。 アプリ プラットフォームには通常、UI フレームワークが含まれていますが、UI フレームワークはスタンドアロン (アプリ プラットフォームに同梱されない) か、複数のアプリ プラットフォームで使用できるもののどちらかになります (「アプリ プラットフォームの選択」を参照)。

ここで説明するフレームワークには、Windows アプリ SDK (WinUI 3) と UWP (WinUI 2) に対応する Windows UI ライブラリ (WinUI)、Windows Presentation Foundation (WPF)、Windows フォーム (WinForms) が含まれます。

ユーザー インターフェイスの基礎

最新の Windows アプリを作成する際には、選択可能な一連の UI フレームワークがあります。 UI フレームワークによって、組み込みのコントロール、スタイル、アニメーション、入力処理などがアプリに提供されます。

Windows アプリのユーザー インターフェイスの作成には、5 つの主要なコンポーネントがあります。 これらのコンポーネントは、通常、各 UI フレームワークに組み込まれています。

  • コントロールスタイル

    • コントロールは、コンテンツを表示したり、操作を行ったりすることができる UI 要素です。 コントロールとは、ユーザー インターフェイスの構成要素です。

      UWP、WinUI 2、WinUI 3 で使用できるボタン コントロールの例を次に示します。 このコントロールをアプリに組み込むと、UI フレームワークが提供する既定のデザインが自動的に受信されます。

      WinUI ボタン

    • スタイルは色、文字体裁、アイコン、Fluent マテリアルなどで構成されており、アプリの設計全体で使用して、真に固有のエクスペリエンスを作成することができます。

      WinUI 2 と WinUI 3 で使用できるアクリルというスタイル コンポーネントの例を次に示します。 アクリルは、アプリ内のサーフェイスまたはアプリの背景として使用できるブラシです。 半透明のテクスチャが提供されます。

      アクリル素材

  • 入力と操作

    エンド ユーザーはアプリを操作し、さまざまな方法でアプリへの入力 (選択や入力など) を行うことができます。 入力の例を次に示します。

    • マウス
    • タッチ
    • Gamepad
    • ペン
    • [キーボード]
    • Surface Dial
    • タッチパッド
    • Speech
  • デバイス サポート

    エンド ユーザーはさまざまなデバイスで Windows アプリにアクセスしますが、UI フレームワークでサポートされるのは特定のデバイスのみである場合があります。 Windows アプリが実行される一般的なデバイスは次のとおりです。

    • PC (多くの場合 "デスクトップ" と呼ばれますが、ノート PC も含まれます)
    • タブレット
    • HoloLens
    • Xbox
    • Surface Hub
  • モーションとアニメーション

    組み込みのアニメーションを使用すると、アプリを洗練された外観にすることができ、Windows 全体でファーストパーティのアプリとの一貫性が確保されます。

    UWP、WinUI 2、WinUI 3 の組み込みアニメーションの例は、エンド ユーザーがライト モードとダーク モードを切り替えるときに表示されるアニメーションです。 エンド ユーザーが PC 全体のモードを切り替えると、アプリの UI も切り替え効果アニメーションと共に自動的に更新されます。

  • ユーザビリティとアクセシビリティ

    すべてのユーザーがアプリを快適に使用できるようにするには、アクセシビリティを考慮する必要があります。

    UI フレームワークでは、目的に合わせたキーボードの動作、スクリーンリーダーのサポートなどにより、コントロールとスタイルに組み込みアクセシビリティを提供します。 また、多くの場合、カスタム コントロールでアクセス可能なアクション (スクリーンリーダーの操作など) 用の API も提供されます。

UI フレームワーク

Microsoft によってリリースされた各 UI フレームワークには固有の機能があり、さまざまなデザイン言語に従っていて、エンド ユーザーにさまざまなエクスペリエンスを提供します。 このセクションでは、主要なすべての UI フレームワークを比較します。アプリの作成を始めるときにこれらの中から選択します。

下の表は、これらの UI フレームワークのいくつかの主要な機能の概要を示しています。 各フレームワークの詳細については、その下のタブを参照してください。

機能 Windows App SDK (WinUI 3) UWP 用 WinUI 2 WPF 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 以降 Windows 10 バージョン 1703 以降 Windows XP 以降 Windows XP 以降
WebView のサポート Chromium ベースの WebView2 Chromium ではない WebView WebView2 のサポートは近日提供予定 WebView2 のサポートは近日提供予定
オープン ソース 間もなく利用できます はい はい (.NET 6 以降のみ) はい (.NET 6 以降のみ)

これらの各 UI フレームワークの詳細については、次のタブの情報を参照してください。

Windows App SDK (WinUI 3)

新しい Windows アプリの大半について、Windows アプリ SDK (WinUI 3) を備えた WinUI を使用してユーザー インターフェイスを構築することをお勧めします。 WinUI 3 では、最新のユーザー インターフェイス (UI) パターンを使用して、一貫性と直感性に優れたアクセスしやすいエクスペリエンスが提供されます。

WinUI 3 は Windows OS から完全に分離され、Windows アプリ SDK の一部としてリリースされます。これは、Windows アプリ開発プラットフォームの次の進化を表す一連のツールとコンポーネントです。

WinUI 3 は、Windows UI ライブラリの最新世代です。 WinUI 2 と 3 は、同じコントロール、スタイル、その他の UI の基礎の多くを共有しています (「WinUI 2 と WinUI 3 の比較」を参照)。

WinUI 3 で実現できる主なアプリのシナリオ

  • さまざまな最新の入力を持つ各種の最新のデバイスで実行する必要がある最新の Windows アプリ
  • C++ で記述されたデスクトップ/Win32 アプリ
  • DirectX と Win2D を活用したグラフィックスが多いアプリまたはゲーム
  • 高パフォーマンスを必要とする統合された Web コンテンツが多いアプリ
  • Windows OS と他のファーストパーティの Windows アプリに "適合する" エクスペリエンスを提供するアプリ

WinUI 3 の役に立つドキュメント