WinUI3 を .NET Framework で使うサンプル (WinUI3NETFramework)

Library

概要

WinUI3NETFramework は「WinUI 3 を .NET Framework アプリケーションで使う」ことを目的としたサンプルリポジトリです。WinUI 3(WinAppSDK)自体は近年の .NET(.NET Core / .NET 5+)と親和性が高い設計ですが、本リポジトリは既存の .NET Framework ベースのデスクトップアプリへ段階的に新しい XAML ベースの UI を導入するための検証と設定例を提供します。プロジェクト設定、ビルド設定(Directory.Build.props 等)、Configuration ディレクトリやサンプル画面のスクリーンショットを含み、実運用上の注意点や依存関係の扱いも参考になります。

GitHub

リポジトリの統計情報

  • スター数: 3
  • フォーク数: 0
  • ウォッチャー数: 3
  • コミット数: 6
  • ファイル数: 10
  • メインの言語: C#

主な特徴

  • .NET Framework のアプリケーションから WinUI 3(WinAppSDK)を利用するための実装例を提供
  • プロジェクト設定(Directory.Build.props等)やビルド構成のサンプルを収録
  • サンプル UI のスクリーンショットや実行イメージで導入後の見た目を確認可能
  • 既存コードベースへ段階的にモダン XAML を組み込む際のヒントが得られる

技術的なポイント

本リポジトリの最大の技術的意義は、WinUI 3(WinAppSDK)とレガシーな .NET Framework の間にあるギャップをどう埋めるかを示している点です。WinUI 3 はネイティブ側(WinRT/Win32)との連携と WinAppSDK のランタイムを前提に動作するため、.NET Framework のプロセスで直接動かすにはいくつかのインタロップ(相互運用)やバイナリ依存の扱いが必要になります。

典型的な課題としては、WinRT コンポーネントのプロジェクション(C#/WinRT 等)や、ネイティブライブラリのロード、アプリケーションパッケージング(MSIX など)に関する要求、そしてスレッドモデル(UI スレッド)やウィンドウハンドル(HWND)を介したホスティングの扱いが挙げられます。本リポジトリはこれらに対し、プロジェクトファイル(Directory.Build.props)で参照やビルド設定を明示し、Configuration ディレクトリで環境固有の設定を分離することで、ビルドとデプロイ時の混乱を低減する工夫を見せています。

また、実際の導入パターンとしては次のような選択肢が考えられます:既存 .NET Framework アプリ内に WinUI のコントロールを埋め込む(XAML Islands 的手法)、別プロセス/別ウィンドウとして WinUI ベースのモジュールを起動し IPC で連携する、あるいは段階的に .NET 6+ に移行してネイティブに WinUI をホストする前段階として WinAppSDK の依存を管理する等。本リポジトリはまず「動かすための最小構成」を示し、レガシー環境での運用上の注意(開発環境の Visual Studio バージョン、必要な Windows SDK、ランタイムの前提)についても暗黙的に示唆しています。

UI 側は WinUI のモダンなコントロールとスタイルを利用するため、既存の WinForms/WPF と並存させる場合のテーマ整合やフォント、スケーリング問題にも配慮が必要です。総じて、本リポジトリは「レガシーを壊さずに新しい UI を試す」ための実践的なサンプルであり、移行戦略を検討する上で参考になる設計上の判断や設定例が含まれています。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .editorconfig: file — コーディングスタイルとフォーマット規約
  • .gitattributes: file — Git の属性設定(改行等)
  • .gitignore: file — ビルド生成物やローカル設定の除外ルール
  • Configuration: dir — 環境依存の設定やプロファイル(ビルド構成、参照パス等)を格納
  • Directory.Build.props: file — 共通の MSBuild プロパティやパッケージ参照の一元設定
  • プロジェクトファイル(おそらく .csproj): file — WinUI/WinAppSDK 参照やビルドターゲットの定義(リポジトリ内に複数ある場合あり)
  • ソースコード/リソース: dir/file — WinUI の XAML や C# コードビハインド、画像などのアセット(スクリーンショットが README に含まれている)
  • README.md: file — 導入手順、スクリーンショット、目的の説明
  • 画像ファイル群: dir — サンプル画面のスクリーンショット(README に埋め込み)
  • その他メタファイル: file — ライセンスや設定ファイルが含まれる可能性あり

Configuration ディレクトリや Directory.Build.props は特に重要で、WinUI 特有の NuGet パッケージやターゲットフレームワーク、ネイティブランタイムの参照設定をまとめる役割を持ちます。レガシーの .NET Framework 環境では参照解決やビルド順序が問題になりやすいため、これらのファイルでルール化している点が利点です。

…他 5 ファイル

まとめ

既存の .NET Framework アプリに WinUI 3 を導入する際の実装例と運用上の注意を示す実践的なリポジトリです。

リポジトリ情報:

READMEの抜粋:

WinUI3NETFramework

Using WinUI 3 in the.NET Framework

---------------------

在 .NET Framework 中使用 WinUI 3


bd92843bdccf6ef25d64246d6b757e0b 457a98e4c7fed904cad922a3f66fb6a4 5bbfc...