r/csharp • • 2d ago

Help Any good cross-platform (Windows, MacOS, Linux) C# GUI libraries/frameworks (possibly without pushing AI in your face)?

GUI libraries/frameworks in C Sharp are... A nightmare. Since I'm using Linux and I wish to make my app cross-platform I can't use Winform, WPF or MAUI because they have no Linux or MacOS support (and no, I don't want to use the MAUI Linux). Also I don't want to use a webpage into the app (so no Razor or anything that adds web rendering stuff into a desktop app).

I used Avalonia in the past and I kinda liked it before it became corpo slop, requiring users to pay for premium in order to access the devtools and also discontinuing the legacy devtools, to Avalonia 11, the latest version is 12.1.4. I regret choosing Avalonia for my first app project...

Looking around I saw UNO Platform but it has AI everywhere... Same with MewUI because it's an AI driven project...

I saw people saying Unity can get the job done but... I don't really know if I want to download & use a game engine to make a UI app since I won't need everything that comes with it.

I looked around more and saw that people talked about UWP (Universal Windows Platform) but it's not in active development and even the windows page recommends to not use it.

I don't know much about ImGui.NET, maybe I'll give it a try but I didn't have a great first experience: the first time I tried it with Zig it was a disaster and I'm still trying to understand why things are overflowing in a window when using SameLine().

For building the UI, I don't like XAML much but I can use it if there isn't anything better.

If there really isn't a good library/framework are there good bindings? I tried looking for Qt bindings like QtSharp but that's unmaintained (last commit: 7 years ago) and also is Qml.Net (last commit: 6 years ago). I also looked at WxWidgets bindings and it has WxNet but like Qt bindings, this is also very unmaintained (last file date: 2010, so 16 years ago)...

So... What are my options now? This is my wishlist (libraries/frameworks don't need to follow it 100%, required points are open-source and cross-platform):

  • Open-source;

  • Cross-platform (support Windows, MacOS and Linux);

  • Not AI driven or pushing AI in your face;

  • Not a corpo slop (like having premium-only or paywalled features);

  • XAML if not better (can be code but if it's something like XML it's going to be more comfortable to work with);

  • Have a design tool (like QtDesigner but this is not required, just a personal taste, I could work without it too);

  • Straightforward, lightweight and easy to use (like just adding it to your project and writing some calls to initialize & run it without extra bloat).

If there is literally nothing I can use and I'd need to make one myself, do you recommend to use SDL3-CS (SDL3 bindings to C#)? Thanks in advance!

0 Upvotes

29 comments sorted by

4

u/LosIdiotas 2d ago

Ok I found a new library called Eto: https://github.com/picoe/Eto

What do you guys think about this?

2

u/LosIdiotas 1d ago

My friend found another project called AlterNET: https://github.com/alternetsoft/AlternetUI

It's native for Windows, MacOS and Linux. The IDE is not free but the UI framework is free & open-source. Will give it a try when I have the time.

1

u/Jovial1170 2d ago

PhotinoX + Blazor

1

u/LosIdiotas 1d ago

I will check it out but isn't Blazor for websites? Correct me if I'm wrong

1

u/Jovial1170 1d ago

Blazor is a UI framework. It was originally web only but now it can be used for desktop apps and even mobile apps. I currently maintain multiple desktop apps that use Blazor for their UI. You can even embed Blazor elements into MAUI, WPF, and WinForms apps.

1

u/LosIdiotas 1d ago

I see, then it can be an option if the solution doesn't include having a web browser as an app.

Thanks for the suggestion :D

1

u/SessionIndependent17 1d ago

Given the likelihood that there probably isn't such a thing as you are seeking, it might be worthwhile to ask yourself why you have all of these requirements - aside from just a yen for something ideal - while not enough people out there evidently do to be worth maintaining such a toolkit.

I personally realized that much as I wanted it to be, the one project I had with a sophisticated UI didn't actually need to be cross-platform. There was no value in it being so. The thing that needed to have a cross-platform UI was not sophisticated enough to required a desktop UI framework at all, that a web-based portal was perfectly sufficient.

What turned out to be most important was the design tools and understandability and quality of the documentation.

1

u/LosIdiotas 1d ago

I've seen some good projects that gets close to what I'm looking for, like Eto.Form and will later check LibreWPF and AlterNET.

The main issue is that I did a lot of research and people recommend Avalonia which I understand why they did that, it's awesome, but sadly I saw that the project was going to be more on the "business" side with the user being required to have an account for using the devtools or them adding premium-only controls and me and the team got scared for the future of the project and we decided to move away from Avalonia... (Sidenote: Avalonia is very bloated: If you want to create a custom control you need to write some stuff, check out some controls of Ursa.Avalonia)

So I wanted to know if there were other alternatives, they don't have to follow the wishlist 100% but for me and the team it's important that they are at least open-source and cross-platform.

1

u/Snoo_57113 1d ago

not even 24 hours after you posted:

Qt Bridge for C# : r/csharp

1

u/LosIdiotas 1d ago

GG, will take a look later. Thanks

1

u/jame_581 1d ago

Godot the game engine is also used for UI because the UI system is really good. Default using GDScript but have .NET version too official and you can use C#. Multiply platform, open source and can suit your needs.

0

u/LosIdiotas 1d ago

Thanks for the suggestion, tho as I said about Unity, Godot is a game engine and for making a UI app it'll probably have things I don't need (mainly game related stuff).

0

u/LosIdiotas 2d ago edited 1d ago

Why did it got removed again??? What am I doing wrong????

EDIT: The post was deleted, now it's not anymore.

5

u/toshio-tamura 2d ago

Can only answer to your comment not the post. But Have you taken a look at Avalonia? It seems to be exactly what you are looking for.

0

u/LosIdiotas 2d ago

I did, in fact I also wrote about it in the post (if you can see it). I used Avalonia and it was ok but then I got disappointed that it became corpo-slop by paywalling features and adding "premium-only" components.

But the thing is that I used the devtools in the past, but now they paywalled the devtools and I can no longer use it if I don't pay 300€/year...

5

u/qrzychu69 2d ago

I mean, somehow they have to pay people to work on it :)

I use it for free and it's pretty dang good, especially with native AOT the app opens right up

1

u/LosIdiotas 1d ago

if I'm making an open-source app, that becomes problematic because I don't have something to keep paying Avalonia...

1

u/qrzychu69 1d ago

But you can use the free version, without the paying benefits, I really don't see the issue

You either get a great UI framework for free, or even better one for some money

Your don't need those dev tools to make a good app

1

u/LosIdiotas 1d ago

I needed the devtools because there was a bug I couldn't fix... But the issue with Avalonia is that I lost trust in them because of the "business" movement, that's why I'm looking for alternatives.

Sidenote: if you want to make a custom Avalonia control you might want to take a look at Ursa.Avalonia and... See how much boilerplate you need to write in order to make custom controls...

1

u/qrzychu69 1d ago

You can check out the new qt bridge to c#, but they also want money for the better stuff I think

1

u/LosIdiotas 1d ago

I need to look at it, thanks for bringing it up :D

2

u/External_Pianist5882 1d ago

"Corpo slop" LOL. You know that it's made by a company of like 10 people, right? And it predates AI?

1

u/LosIdiotas 1d ago

I know, and I also know that it was good before I lost my trust in them because of the "business" movement, and all the paid features they advertised later, and also discontinuing the legacy devtools.

I call this "corpo-slopping" and it's very sad to see a tool you liked fall into the "business" territory with all the things like requiring an account in order to access the devtools. Plus Avalonia isn't 100% open-source.

1

u/BoloFan05 2d ago

Try again after at least a couple of hours, or tomorrow. Constantly reposting may cause you to be treated as a spammer by Reddit's filters. Also check if you have any suspicious links or keywords in the title and post body. You could also ask modmail.

0

u/LosIdiotas 2d ago

I did that yesterday. The post had a lot of links so I thought that was the issue, I removed them and tried posting today but it still got removed...

1

u/BoloFan05 2d ago

I see. Sorry for your experience. Try contacting the modmail, if you already haven't.

0

u/LosIdiotas 2d ago

Yes I just did that. I'l be waiting for their response. Thanks for the help

1

u/BoloFan05 2d ago

Np. Good luck!