Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a cross-platform GUI framework for C#/.NET?

Let's say just for the joy of it, I decide that I don't want to write desktop applications in Java any more, instead want to switch to using C#. I want to be able to build an application that will run on some mainstream Linux distribution, and a recent release of MS Windows. It will have a GUI component.

In Java I can build an application that uses Swing. Once I have it working, I can copy that jar file from Windows to Linux or vice versa, depending where I developed it. And it will generally run with java -jar myapp.jar.

In C# is it possible to do this? Is there a functional equivalent to Swing or AWT in C#?

like image 874
Jay R. Avatar asked Apr 22 '09 21:04

Jay R.


People also ask

Can you make GUI with C?

All operating systems are written in C. So, any application, console/GUI you write in C is the standard way of writing for the operating system.

Which is the best GUI for C?

GTK is a popular GUI that works with C .

What is a cross platform GUI?

August 4, 2022. A cross-platform GUI is a great tool for designing apps and software that can run seamlessly on: Android, iOS, macOS, Windows, and Linux. So why create apps for different platforms when you can make one for all in less effort and expense?

Is CPP good for GUI?

To develop C++ GUI or C++ graphical user interface application, you need an IDE that supports the C++ GUI application. To create the GUI app, you must use Visual Studio 2019 because it is better suited for the C++ GUI application.


1 Answers

There's Eto.Forms (on github), which is an abstraction layer on top of WPF, WinForms, GTK, and MonoMac/Cocoa - so you can get a native UI on all platforms without having to re-implement for each platform. You don't have to suffer from lowest common denominator, since you can implement specifics for each platform (if desired, but not required).

It has an advantage that it is pure .NET and only relies on OS-supplied dependencies, as opposed to using GTK or WxWidgets where you'd have to bundle the native binaries for various platforms.

like image 153
Curtis Avatar answered Sep 24 '22 11:09

Curtis