WinUI 3 は、最新の Windows アプリを構築するためのネイティブ ユーザー エクスペリエンス (UX) プラットフォームです。 WinUI 3 のこのプレビューは、デスクトップ/Win32 アプリと UWP アプリの両方で動作し、WinUI ベースのユーザー インターフェイスと WinUI ライブラリを含む NuGet パッケージを使用してアプリの構築を開始するのに役立つ Visual Studio プロジェクト テンプレートが含まれています。
WinUI 3 - Project Reunion 0.5 Preview は WinUI 3 の最初のリリースであり、Project Reunion パッケージ (現在は Windows アプリ SDK と呼ばれます) の一部として提供されます。 この変更に加えて、このプレビュー リリースには、重要なバグ修正、安定性の向上、その他のいくつかの一般的な機能強化が含まれています ( WinUI 3 - Project Reunion 0.5 プレビューで導入された機能を参照)。
Important
この WinUI 3 プレビューは、早期評価と開発者コミュニティからのフィードバックの収集を目的としています。 実稼働アプリには使用できません。
WinUI GitHub リポジトリを使用して、フィードバックとログの提案と問題を提供してください。
注
Project Reunion は、 Windows アプリ SDK の以前のコード名です。 このドキュメントでは、このコード名を使用した以前のリリースを参照するときに、 Project Reunion を引き続き使用します。
WinUI 3 のインストール - Project Reunion 0.5 プレビュー
このバージョンの WinUI 3 は、Project Reunion 0.5 プレビューの一部として使用できます。
インストールするには、「 Windows アプリ SDK のプレビュー チャネルと試験的チャネル用のインストール ツール」の指示に従います。
WinUI 3 の過去のプレビュー バージョンとは異なり、WinUI VSIX パッケージではなく Project Reunion VSIX パッケージをダウンロードします。 Project Reunion VSIX には、 WinUI アプリのビルドに使用する Visual Studio の WinUI 3 テンプレートが含まれています。 インストールが完了したら、WinUI アプリを開発するエクスペリエンスは変わりません。
注
XAML コントロール ギャラリーの WinUI 3 Preview バージョンを複製してビルドすることもできます。
注
ライブ ビジュアル ツリー、ホット リロード、Live プロパティ エクスプローラーなどの WinUI 3 ツールを使用するには、 次の手順に従って、Visual Studio プレビュー機能で WinUI 3 ツールを有効にする必要があります。
開発環境を設定したら、 Visual Studio の WinUI 3 テンプレートを 参照して、使用可能な Visual Studio プロジェクトテンプレートと項目テンプレートについて理解します。
WinUI プロジェクト テンプレートの概要の詳細については、次の記事を参照してください。
制限事項や既知の問題とは別に、WinUI プロジェクトを使用してアプリをビルドすることは、XAML と WinUI 2 を使用した UWP アプリの構築と似ています。 そのため、Windows SDK の UWP アプリと Windows.UI WinRT 名前空間に関するガイダンス ドキュメントのほとんどは該当します。
WinUI 3 API リファレンス ドキュメントについては、WinUI 3 API リファレンスを参照してください。
WinUI Preview 4 を使用してプロジェクトを作成した場合は、Project Reunion 0.5 Preview を使用するようにプロジェクトをアップグレードできます。
WebView2
この WinUI 3 プレビューで WebView2 を使用するには、WebView2 ランタイムがまだインストールされていない場合は、 このページ にある Evergreen Bootstrapper または Evergreen スタンドアロン インストーラーをダウンロードしてください。
Windows Community Toolkit
Windows Community Toolkit を使用している場合は、 最新バージョンをダウンロードします。
Visual Studio のサポート
ホット リロード、ライブ ビジュアル ツリー、Live プロパティ エクスプローラーなどの WinUI 3 に追加された最新のツール機能を利用するには、最新の WinUI 3 プレビューで最新の プレビュー バージョンの Visual Studio を使用し、Visual Studio プレビュー機能で WinUI ツールを有効にする必要があります( 手順を参照)。 次の表は、WinUI 3 - Project Reunion 0.5 Preview との将来のバージョンの互換性を示しています。
| VS バージョン | WinUI 3 - Project Reunion 0.5 プレビュー |
|---|---|
| 16.8 RTM | いいえ |
| 16.9 プレビュー | はい、ツールを使用します |
| 16.9 RTM | はい。ただし、ホット リロード、ライブ ビジュアル ツリー、または Live プロパティ エクスプローラーはありません |
| 16.10 プレビュー | はい、ツールを使用します |
このリリースで導入された主な変更
WinUI 3 は Project Reunion パッケージの一部として出荷されるようになりました。これは、今後サポートされるリリースの発送方法のメカニズムでもあります。
アプリ内アクリルがサポートされるようになりました。
ピボット コントロールはサポートされなくなり、WinUI 3 では非推奨になりました。 アプリ内ナビゲーション シナリオには NavigationView コントロール を使用することをお勧めします。
WinUI 3 と Project Reunion は、Windows 10 バージョン 1809 の下位レベルでのみサポートされます。ビルド 17763 以降が必要です。
プレビュー機能が試験段階としてマークされるようになりました。
- プレビュー機能は、WinUI 3 プレビューの一部であり続けますが、次の WinUI 3 でサポートされるリリースには含まれません。
- プレビュー機能には、WinUI for UWP 2.6 プレビューの一部である試験段階の API も含まれています。
- プレビュー機能を使用するアプリを構築すると、アプリは警告を表示します。
WinUI 3 で修正されたバグの一覧 - Project Reunion 0.5 Preview
プレビュー 3 以降にチームが修正したユーザー向けのバグの一覧を次に示します。 また、安定化を取り巻く作業やテストの改善にも多くの作業が行われています。
WinUI 3 のエラー メッセージは再構成が必要です: "'Windows.metadata' を解決できません。" Windows ソフトウェア開発キットをインストールしてください。 Windows SDK は Visual Studio と共にインストールされています。
再起動されるまで Windows の既定のテーマを選択するときに、アプリが Windows のテーマの変更に応答しない
XamlDirect.CreateInstance 呼び出しの例外
ProgressBar で一時停止とエラー オプションの違いが表示されない
StandardUICommand リスト ビューの項目ポップアップが間違った位置に表示されます。
タッチで ListView 項目を並べ替えようとすると、デスクトップ XamlControlsGallery でクラッシュする
RichTextBlock を長押しすると、ポップアップが間違った場所に配置される
左右の矢印が RadioButtons を通じてフォーカスを移動しない
ユーザーが下/上方向キーを押して DatePicker で次の月/前の月/年/日付を選択すると、ナレーターはサイレントのままです
NavigationView ライト 無視が WinUI 3 で機能しない
過去の WinUI 3 プレビューで導入された新機能
次の機能は、WinUI 3 Previews 1 から 4 で導入され、WinUI 3 - Project Reunion 0.5 プレビューで引き続きサポートされています。
- Win32 アプリ用 .NET など、WinUI でデスクトップ アプリを作成する機能
- RadialGradientBrush
- TabView の更新
- ダーク テーマの更新
-
WebView2 の機能強化と更新
- 高 DPI のサポート
- ウィンドウのサイズ変更と移動のサポート
- より新しいバージョンの Edge をターゲットに更新
- WebView2 固有の Nuget パッケージを参照する必要がなくなりました
- SwapChainPanel
- MRT Core のサポート
- これにより、起動時にアプリが高速かつ軽量になり、リソースの検索が迅速になります。
- Arm64 のサポート
- アプリの内側と外側をドラッグ アンド ドロップする
- RenderTargetBitmap (現在は XAML コンテンツのみ - SwapChainPanel コンテンツなし)
- カスタム カーソルのサポート
- スレッド以外の入力
- ツール/開発者エクスペリエンスの改善:
- ライブ ビジュアル ツリー、ホット リロード、ライブ プロパティ エクスプローラーなどのツール
- WinUI 3 の Intellisense
- オープン ソースの移行に必要な機能強化
- カスタム タイトル バー機能: 開発者がデスクトップ アプリでカスタム タイトル バーを作成できるようにする新しい Window.ExtendsContentIntoTitleBar API と Window.SetTitleBar API。
- VirtualSurfaceImageSource のサポート
フィードバックと提案を提供する
WinUI GitHub リポジトリでのフィードバックをお待ちしております。
制限事項と既知の問題
WinUI 3 - Project Reunion 0.5 プレビューは、プレビューにすぎません。 デスクトップ アプリに関するシナリオは特に新しいシナリオです。 バグ、制限事項、その他の問題を想定してください。
WinUI 3 - Project Reunion 0.5 Preview の既知の問題の一部を次に示します。 以下に記載されていない問題が見つかる場合は、既存の問題に投稿するか、 WinUI GitHub リポジトリを使用して新しい問題を提出して、お知らせください。
プラットフォームと OS のサポート
WinUI 3 - Project Reunion 0.5 Preview は、Windows 10 October 2018 Update (バージョン 1809 - ビルド 17763) 以降を実行している PC と互換性があります。
開発者用ツール
- サポートされているのは C# アプリと C++/WinRT アプリのみです
- デスクトップ アプリは .NET 6 (以降) と C# 9 をサポートしており、MSIX アプリにパッケージ化する必要があります
- UWP アプリでは、.NET Native と C# 7.3 がサポートされます
- Visual Studio では、開発者ツールと Intellisense が正しく動作しない場合があります。
- XAML デザイナーのサポートなし
- 新しい C++/CX アプリはサポートされていませんが、既存のアプリは引き続き機能します (できるだけ早く C++/WinRT に移行してください)
- デスクトップ アプリでの複数のウィンドウのサポートは進行中ですが、まだ完全で安定していません。
- マルチウィンドウ動作で新しい問題や回帰が見つかる場合は、リポジトリにバグを報告してください。
- パッケージ化されていないデスクトップ展開はサポートされていません
- F5 キーを使用してデスクトップ アプリを実行する場合は、パッケージ 化プロジェクトを実行していることを確認します。 アプリ プロジェクトで F5 キーを押すと、パッケージ化されていないアプリが実行されます。WinUI 3 はまだサポートされていません。
不足しているプラットフォーム機能
- Xbox サポート
- HoloLens のサポート
- ウィンドウのポップアップ
- 具体的には、
ShouldConstrainToRootBoundsプロパティは、プロパティ値に関係なく、常にtrueに設定されているかのように機能します。
- 具体的には、
- 手描き入力のサポート
- Acrylic
- MediaElement と MediaPlayerElement
- マップコントロール (MapControl)
- SwapChainPanel および XAML 以外のコンテンツの RenderTargetBitmap
- SwapChainPanel は透明度をサポートしていません
- グローバル表示では、ソリッド ブラシを使用するフォールバック動作が採用されています。
- XAML Islands は、このリリースではサポートされていません
- サード パーティのエコシステム ライブラリは完全には機能しません
- IME が機能しない
- CoreWindow、ApplicationView、CoreApplicationView、CoreDispatcher とその依存関係は、デスクトップ アプリではサポートされていません (下記参照)
デスクトップ アプリの CoreWindow、ApplicationView、CoreApplicationView、CoreDispatcher
プレビュー 4 の新機能と今後の標準、 CoreWindow、 ApplicationView、 CoreApplicationViewCoreDispatcher、およびその依存関係は、デスクトップ アプリでは使用できません。 たとえば、 Window.Dispatcher プロパティは常に null ですが、Window.DispatcherQueue プロパティは代替として使用できます。
これらの API は、UWP アプリでのみ機能します。 過去のプレビューでは、デスクトップ アプリでも部分的に機能しましたが、Preview4 では完全に無効になっています。 これらの API は、スレッドごとにウィンドウが 1 つだけ存在し、WinUI3 の機能の 1 つが複数のウィンドウを有効にする UWP ケース用に設計されています。
これらの API の存在に内部的に依存する API があり、その結果、デスクトップ アプリではサポートされません。 これらの API には、一般に静的な GetForCurrentView メソッドがあります。 たとえば 、UIViewSettings.GetForCurrentView です。
影響を受ける API と、これらの API の回避策と置換の詳細については、デスクトップ アプリの WinRT API の変更を参照してください
既知の問題
Windows 10 バージョン 1809 で UWP アプリの起動に失敗する原因となっている問題があります。 チームは、次のプレビュー リリースでこのバグの修正に積極的に取り組んでいます。
Alt + F4 キーを押しても、デスクトップ アプリウィンドウは閉じません。
UISettings.ColorValuesChanged イベントと AccessibilitySettings.HighContrastChanged イベントは、デスクトップ アプリではサポートされなくなりました。 これを使用して Windows テーマの変更を検出すると、問題が発生する可能性があります。
このリリースには、ビルド時に警告を発生させるいくつかの試験的なAPIが含まれています。 これらはチームによって徹底的にテストされておらず、不明な問題が発生している可能性があります。 問題 が発生した場合は、 リポジトリにバグを提出してください。
以前は、CompositionCapabilities インスタンスを取得するには 、CompositionCapabilites.GetForCurrentView()を呼び出します。 ただし、この呼び出しから返される機能は、ビューに依存 していません 。 この問題に対処して反映するために、このリリースでは GetForCurrentView() 静的なオブジェクトが削除されているため、 CompositionCapabilties オブジェクトを直接作成できるようになりました。
C# UWP アプリの場合:
WinUI 3 フレームワークは、C++ (C++/WinRT を使用) または C# から使用できる WinRT コンポーネントのセットです。 C# を使用する場合、アプリ モデルに応じて .NET の 2 つのバージョンがあります。UWP アプリで WinUI を使用する場合は、.NET Native を使用します。デスクトップ アプリで使用する場合は、.NET 6 以降 (および C#/WinRT) を使用しています。
UWP で WinUI アプリに C# を使用する場合、WinUI デスクトップ アプリの C# または UWP アプリの C# WinUI と比較して、いくつかの API 名前空間の違いがあります。一部の型は、
Microsoft名前空間ではなくSystem名前空間にあります。 たとえば、INotifyPropertyChanged名前空間にあるSystem.ComponentModelインターフェイスではなく、Microsoft.UI.Xaml.Data名前空間にあります。適用対象は以下のとおりです。
-
INotifyPropertyChanged(および関連する型) INotifyCollectionChangedICommand
System名前空間のバージョンは引き続き存在しますが、WinUI 3 では使用できません。 つまり、WinUI 3 C# UWP アプリではObservableCollectionas-is 機能しません。 回避策については、保持されている XAML コントロール ギャラリー スナップショットの CollectionsInterop サンプルを参照してください。-
WinUI 3 プレビューの XAML コントロール ギャラリー スナップショット
winui3preview ブランチは使用できなくなり、XAML コントロール ギャラリー リポジトリの名前が microsoft/WinUI-Gallery に変更されました。 WinUI 3 - Project Reunion 0.5 Preview 用に存在していたサンプル アプリは、履歴コミットに保持されます。 このスナップショットには、現在の WinUI 3 ギャラリーは反映されません。
履歴スナップショットをダウンロードするには、リポジトリを複製し、保存されたコミットをチェックアウトします。
git clone https://github.com/microsoft/WinUI-Gallery.git
cd WinUI-Gallery
git checkout 136c81578c6f30750efb268a4a8e2da871f182ef
Windows developer