xenoA szó amit keresel az a GUI framework, az az a grafikus felhasználói felület megvalósítására szolgáló keretrendszer. Ez alapvetően nem teljesen független az azt megvalósító nyelvtől, de a gyakorlatban érdemes külön fogalomként kezelni. Vagyis, az hogy c#-ban írsz egy grafikus programot annak fontos eleme hogy melyik GUI framework-öt használod. Windows-on alapvetően a Windows.Forms és a WPF az elterjedt. Ezek elvi alapjaikban is különböznek, habár nyilván a nyelv alapvető elemei ugyanúgy működnek mindegyikkel, pl. egy változó-értékadás ugyanúgy működni fog, a GUI frameworktől függetlenül, de hogy egy ablakot, vagy annak tartalmát hogyan valósítod meg, egyáltalán milyen grafikus elemeket használhatsz, azt már nagyban meghatározza a használt framework. (Általában a Windows.Forms használatát szokás tanítani, valószínűleg te azt tanultad eddig.)
Kicsit úgy kell elképzelni mint a weboldalaknál a HTML és a CSS kapcsolatát, csak nem annyira függetlenek egymástól, HTML írja le a tartalmat, a CSS pedig azt hogyan nézzen ki, C#-ban megírhatod az adatok megvalósítását és kezelését, míg a GUI framework (ami technikailag ugyanúgy C#, bár ez nem kötelező lehet írva más nyelvben is), adja meg hogyan is fog ez megjelenni.
Természetesen használható más keretrendszer is, például a fent említett GTK# ami a GTK elemeit valósítja meg .NET/Mono környezetben C# nyelven.
A különböző keretrendszerek eltérő osztályokat, property-ket és változókat használnak, ezeket az eltéréseket érzékelheted úgy, mintha más nyelv lenne, pedig az is C#.