A few years ago, I actually tried to write a GUI program in C#.... and spent WAY too much time just trying to get a handle on how the graphics stack is organized in Windows... even a simple helloworld program required a truckload of setup before writing out the string in the middle of the window. And if graphical elements look out of place, I have to hunt down the API's to adjust just the right values. Not to mention there's different toolkits, best practices, and other details to take care of...