またまたWindowsのアプリ開発回りが変わりそうなのでとりあえず環境構築とテストアプリを実行してみた。
使用した環境
- Windows11 Pro 21H2
- AMD Ryzen 5 3600
- RAM 16.0GB
- Visual Studio2022
まずはアップデート

上記サイトを見ながら操作を行った。
Visual Studio 2022の更新
まずは更新作業から
Visual Studio Installerを起動し更新をクリックするだけ。
この時の最新バージョンは17.1.5。

Visual Studioの構成を変更
ワークロードタグのデスクトップとモバイルから下記をチェックする
- .NET デスクトップ開発
- C++によるデスクトップ開発
- ユニバーサルWindowsプラットフォーム開発
次に画面右側インストールの詳細の下記項目をチェックする
- C++によるデスクトップ開発を展開し[Windows アプリ SDK C++ テンプレート]をチェック。
- .NET デスクトップ開発を展開し[Windows アプリ SDK C# テンプレート]をチェック。
- ユニバーサル Windows プラットフォーム開発を展開し[C++(v143) ユニバーサル Windows プラットフォーム ツール]をチェック。



変更をクリックする。
早速新しいプロジェクトを作成してみる
Visual Studio 2022を起動後新しプロジェクトの作成を選択。
テンプレート選択で言語C#、すべてのプラットフォーム、WinUIで検索。
今回は、[空白のアプリ、パッケージ化(デスクトップのWinUi3)]を選択。
適当なプロジェクト名をつけて[作成]。
何も操作せずにとりあえず実行してみた。

ボタンをクリックするとボタンの文字がClickedになるだけの超シンプルなアプリが起動する。
もう少しいじってみた
基本的な部分は多分UWPと変わらないようなイメージ。
XamlもUWPと同様の書き方で問題なく動作する。x:Bindも試したが問題ない。
UWPからの移行がほぼコピペだというから多分ほとんどの部分で問題なく動作するようだ。
試しにUWPから移植を試してみたが、一部機能が(今回はCameraCaptureUI)サポートされていないようだった。
サポートに関する詳細は下記参照。

まとめ
まだ表面的な部分しか触れていないが、UWPとほぼ同環境と考えれば開発自体新たに覚えることも少なくありがたい。
WinFormは調べるのに苦労しなかったがUWPになってからは公式ドキュメントがメインになるくらい一般開発者が少ない印象。もう少し開発者が増えてくれると調べるときに助かるのだがw。
!!いきなり問題発生!!
試しに既存アプリのWinUI3移植を試していたのだが、どうにもうまくいかない部分がある。
それは、Converter。x:Bind で値から文字に変えたりするあれが使えない。
いろいろと調べて試してみたがどれもダメだった。最悪プロパティを増やして対応することはできるけど、何ともスマートじゃない。
“WinUI3 x:Bind IValueConverter”で検索すると同じ症状が出ているが、解決策は見つけられなかった(英語読めないだけ?)
Page.Resourceも使えない。(そもそもPageからWindowに変わっている)
ResourceDictionaryの書く場所が変更になったようだ。

まだまだ発展途上なのか、自分の能力不足なのかイマイチわからん。
とりあえず小規模なアプリを移植してみたが、イマイチ動作が不安定のようだ。デバッグが面倒なので今回はここまでにする。(現状UWPで問題なく動作しているのでそこまでやる気がない)
コメント