Windows UI 2 ライブラリの概要

Windows UI ライブラリ 2.8 は、運用 UWP アプリケーション (および XAML Islands を使用するデスクトップ アプリケーション) の構築に使用できる WinUI の最新の安定バージョンです。

ライブラリは、新規または既存の任意の Visual Studio プロジェクトに追加できる NuGet パッケージとして提供されています。

注意

最新バージョンの WinUI 3 を使った Windowsデスクトップ アプリの作成について詳しくは、Windows UI ライブラリ 3 に関するページをご覧ください。

Windows UI ライブラリのダウンロードとインストール

  1. Visual Studio 2022 ダウンロードし、Visual Studio インストーラーでユニバーサル Windows プラットフォーム開発ワークロード 選択していることを確認します。

  2. 既存のプロジェクトを開くか、[Visual C#] -> [Windows] -> [ユニバーサル] にある [空のアプリ] テンプレート、または言語プロジェクションに適したテンプレートを使用して、新しいプロジェクトを作成します。

    重要

    WinUI 2.8 を使用するには、プロジェクトのプロパティで、TargetPlatformVersion >= 10.0.18362.0 と TargetPlatformMinVersion >= 10.0.17763.0 を設定する必要があります。

  3. [ソリューション エクスプローラー] パネルで、プロジェクト名を右クリックし、[NuGet パッケージの管理] を選択します。

    Screenshot of the Solution Explorer panel with the project right-clicked and the Manage NuGet Packages option highlighted.
    プロジェクトが右クリックされ、[NuGet パッケージの管理] オプションが強調表示されている [ソリューション エクスプローラー] パネル。

  4. NuGet パッケージ マネージャーで、[参照] タブを選択し、「Microsoft.UI.Xaml」または「WinUI」を検索します。 使用する Windows UI ライブラリの NuGet パッケージを選択します (Microsoft.UI.Xaml パッケージにはすべてのアプリに適した Fluent コントロールと機能が含まれています)。 [インストール] をクリックします。

    [プレリリースを含める] チェックボックスをオンにして、試験的な新機能が含まれている最新のプレリリース バージョンを確認することもできます。

    Screenshot of the NuGet Package Manager dialog box showing the Browse tab with winui in the search field and Include prerelease checked.
    検索フィールドに winui と入力され、[プレリリースを含める] がオンになっている状態の [参照] タブを示す [NuGet パッケージ マネージャー] ダイアログ ボックス。

  5. App.xaml ファイルに Windows UI (WinUI) テーマ リソースを追加します。

    これを行うには、他のアプリケーション リソースがあるかどうかに応じて 2 つの方法があります。

    a. 他のアプリケーション リソースが不要な場合は、次の例に示すように、WinUI リソース要素 <XamlControlsResources を追加します。

    <Application
        x:Class="ExampleApp.App"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        RequestedTheme="Light">
    
        <Application.Resources>
            <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
        </Application.Resources>
    
    </Application>
    

    b. 他のリソースがある場合は、それらを XamlControlsResources.MergedDictionaries に追加することをお勧めします。 これはプラットフォームのリソース システムと連動し、XamlControlsResources リソースのオーバーライドを可能にします。

    <Application
        x:Class="ExampleApp.App"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:controls="using:Microsoft.UI.Xaml.Controls"
        RequestedTheme="Light">
    
        <Application.Resources>
            <controls:XamlControlsResources>
                <controls:XamlControlsResources.MergedDictionaries>
                    <ResourceDictionary Source="/Styles/Styles.xaml"/>
                    <!-- Other app resources here -->
                </controls:XamlControlsResources.MergedDictionaries>
            </controls:XamlControlsResources>
        </Application.Resources>
    
    </Application>
    
  6. XAML ページと分離コード ページの両方に、WinUI パッケージへの参照を追加します。

    • XAML ページで、ページの上部に参照を追加します

      xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
      
    • コード内で (型名を修飾せずに使用する場合)、using ディレクティブを追加できます。

      using MUXC = Microsoft.UI.Xaml.Controls;
      

C++/WinRT プロジェクトの追加手順

NuGet パッケージを C++/WinRT プロジェクトに追加すると、ツールによって、プロジェクトの \Generated Files\winrt フォルダーに一連のプロジェクション ヘッダーが生成されます。 これらのヘッダー ファイルをプロジェクトに取り込んで、これらの新しい型への参照が解決されるようにするには、プリコンパイル済みヘッダー ファイル (通常は pch.h) 内でそれらをインクルードできます。 次の例では、Microsoft.UI.Xaml パッケージ用に生成されたヘッダー ファイルをインクルードしています。

// pch.h
...
#include <winrt/Microsoft.UI.Xaml.Automation.Peers.h>
#include <winrt/Microsoft.UI.Xaml.Controls.Primitives.h>
#include <winrt/Microsoft.UI.Xaml.Media.h>
#include <winrt/Microsoft.UI.Xaml.XamlTypeInfo.h>
...

Windows UI ライブラリの単純なサポートを C++/WinRT プロジェクトに追加する詳細な手順を説明したチュートリアルについては、「単純な C++/WinRT Windows UI ライブラリの例」を参照してください。

Windows UI ライブラリへの投稿

GitHub の microsoft-ui-xaml リポジトリでは、バグ レポート、機能要求、コミュニティ コードの投稿を歓迎します。

その他のリソース

UWP を初めて使用する場合は、開発者ポータルの「UWP 開発の概要」ページにアクセスすることをお勧めします。