title: Is there a cross-platform GUI framework for C#/.NET?
body: <p>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. </p>
  
  <p>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 <code>java -jar myapp.jar</code>.</p>
  
  <p>In C# is it possible to do this?  Is there a functional equivalent to Swing or AWT in C#?</p>