I am a retired Windows-stack developer that has migrated to Linux and re-discovered my joy in programming. I just finished my first big Linux app using Gtk3, GtkSharp and C#. While it turned out great, I don't want to do that again with Gtk. It is so poorly documented, and I spent way too much time (and code) getting around its limitations.
So I'm looking for a GUI framework that I can do cross-platform development on with C#, with Linux as my development environment. Besides Gtk, I've investigated:
Qt - Their Widgets product is exactly what I'm looking for, but there is no C# interface. There used to be a C# wrapper project called QtSharp, but it hasn't been touched in over 10 years and won't work with the current QT products. They have a 'Bridges' product that works with C#, but it is strictly a XAML to QML thing, which I have no use for. A C# wrapper for Widgets is allegedly being planned, but it's not even on the development schedule.
Uno - It also looked promising, and can be used with C#, but they seem to have gone all-in on vibecoding. Their web site actually creeps me out a bit with its gushing praise for all things AI and agentic. I actually enjoy programming, and have no interest in offloading it to AI.
My question is this: am I missing any cross-platform GUI frameworks that works with C#, and doesn't mandate XAML or some other declarative-style interface?
Thanks in advance for any wisdom thrown my way,
John Bendiksen
Sam HobbsPosted Oct 31, 2026, 3:25 AM
You have dumped out much criticism but you have not provided much of a description of what you do want . You say doesn't mandate
XAMLor some other declarative-style interface but note that you have not said much about why XAML is a problem.I probably have been programming longer than you have. I however do not know what a declarative-style interface is. Gemini AI however says that GtkSharp and Eto.Forms satisfy your requirements.
Note that Uno has been around longer than AI has been available for general use. The pricing does emphasize MCP servers and that is not vibe coding. Vibe coders are developers that don't look at the code, at least not much. MCP servers are for developers that spend time looking at and writing code.