## .NET 6以前
Windows 10の固有APIにアクセスする方法としては、Windows Runtime API (WinRT API) があります。
Windows Runtime APIはUWPアプリからはすごく使いやすかったのですが、.NET Frameworkから使おうとすると参照設定をしたり、デスクトップブリッジを使ったりと、ひと手間といわず数手間かかるような感じした。
## .NET 6以降
正確には、.NET 5でも同様のようですが、.NET 6では、Windows Runtime APIを使うための準備をほぼ意識しないレベルになっています。
### 準備
Visual Studioでプロジェクトのプロパティで「ターゲットOS」を指定するところでWindows 10のバージョンを指定します。この指定によってcsprojファイルには次のようにWindows 10のランタイムバージョンが指定されます。
### 使い方(コード編)
普通に「Windows.」で始まる名前空間=Windows Runtime APIのクラスが使えますね。
### 使い方(xaml編)
Windows.UI.Xaml名前空間がないようです。
これは、Windows App SDK(旧名称は WinUI 3)に含まれているので、nugetでMicrosoft.WindowsAppSDKを追加すれば使えるようになるはずです。
どうして「はず」なのかといえば、確認するために使った.NET 6なWPFアプリがx86/x64/ARM/ARM64対応のものだったので、Windows App SDKがARMに対応していないというビルドエラーがでて動作確認までに至らなかったからです。
また、時間を見つけて確認してみたいと思います。
なにはともあれ、すごく楽にWindows Runtime APIが使えるようになったので、例えば、Bluetooth関連だとか、カメラデバイス一覧だとかは簡単に取得できますね。