what surprised me is how different the rendering architecture is for each framework.

Win32 -> message loops & GDI

Winforms -> managed C# via P/Invoke

WPF -> throwse all away and uses DirectX

UWP -> Appcontainer sandboxing

WinUI -> decouples from OS entirely

This visual breakdown helped me to see it clearly - https://vectree.io/c/evolution-of-windows-gui-frameworks-fro...

As far as I remember, WinForms is just a thin wrapper around Win32 with a message loop, i.e. not all that different.