hotaru.hino
Glorious
I'm presuming your experience using C# is with a development suite like Visual Studio or Unity. Because a GUI doesn't really matter here with regards to language choices. You can build a GUI based app using Python and Tcl/Tk or C++ with Qt. And I know Qt comes with a visual editor so you can design the GUI beforehand. Even HTML/CSS/JS using jQuery is an option (plus it's very portable). But even then, for more advanced GUI doohickies, you'll need to programmatically tweak them at a point where they're not even visible in the visual editor from the start.But for non-performance sensitive GUI apps? C# as a language is well designed, simple to use, and free of many of the pitfalls of C/C++. Mono on Linux isn't bad so far as portability goes, but portability is a concern if you want to live on multiple platforms. But the framework does remove a lot of the low-level implementation you need to do to implement similar features in C/C++, which makes C# a heck of a lot quicker to get something up an running, and (assuming the framework or reimplementation is supported on your platform) does ensure portability with minimal effort.
Also what low-level stuff? The only thing I can think of that anyone really needs to touch at that level between C# and C/C++ is memory management. While C likely still has issues requiring manual memory management (at least, using the stdlib), C++ has largely allowed programmers to get away from that. And if you're not using the tools C++ has (e.g., unique_ptr and shared_ptr) and the techniques you should be using (such as RAII), then you're doing it wrong.