クロスプラットフォームで C# を使って「ウィンドウ(GUI)」を表示したい場合、以下の方法があります。Linux / macOS / Windows すべてに対応できる選択肢としては、以下のライブラリやフレームワークが主流です:
目次
✅ 1. Avalonia UI(おすすめ)
- クロスプラットフォーム対応:Windows / Linux / macOS
- XAML ベースで、WPF に非常によく似た書き方。
- オープンソース & アクティブに開発中。
- .NET 6/7/8 など最新の .NET に対応。
- デザイナー(GUI設計ツール)もあり。
インストール例(.NET CLI):
dotnet new avalonia.app -o MyApp cd MyApp dotnet run
参考サイト:
✅ 2. MAUI (.NET MAUI)
- Microsoft公式のモダンなUIフレームワーク。
- 本来は「モバイル(iOS / Android)+ デスクトップ(Win / macOS)」向け。
- macOS 対応には Mac に .NET MAUI のセットアップが必要(Xcodeも必要)。
- Linux は 公式には未対応(が、非公式の MAUI Linux プロジェクトあり)。
☑ Windows / macOS のデスクトップ向けなら良いが、Linux対応は微妙。
✅ 3. Uno Platform
- UWP / WinUI スタイルで、Web(WebAssembly)、Windows、Linux、macOS、Android、iOS もサポート。
- GUI を Web にも展開できるのが強み。
- 学習コストはやや高め。
✅ 4. GtkSharp (Gtk#)
- GTK+ を C# から使えるようにしたバインディング。
- Linux との相性が良い(元々 Linux ベースのGUIツールキット)。
- Windows/macOS もサポートされているが、UIがやや古風。
- .NET 6/7 対応のバージョンあり。
✅ その他(限定的 or 古い)
- WinForms / WPF → Windows専用。
- Eto.Forms → クロスプラットフォーム対応(Win/mac/Linux)だがやや開発は停滞気味。
📌 結論(用途別におすすめ)
用途・要件 | おすすめ |
---|---|
最新UI / 全OS対応 / 活発な開発 | Avalonia UI |
Microsoft製 / モバイル対応 | .NET MAUI(ただし Linux は注意) |
Web展開もしたい / UWPスタイルが好き | Uno Platform |
Linux中心 / 軽量 | GtkSharp |
もしよければ、あなたの開発目的(例:小さなツール、業務アプリ、教育用、など)や、ターゲットOSの優先度を教えてくれたら、もっとピッタリな選択を提案できますよ!