Q:

Why do I have to use the Application class to use WPF windows?

I create my Window class
class myWin : Window
{
    public myWin()
    {
        Title = "My";
        MaxWidth = 500;
        MaxHeight = 500;
    } 
}

Why I can not run 'myWin' without run Application's instance?
Runs, but with freeze(Do not work).
myWin a = new myWin();
a.Show();

Works Perfectly!
myWin a = new myWin();
a.Show();

Application b = new Application();
b.Run();

I am using Xamarin Studio

A:

The reason is that the Application class implements all the necessary plumbing/infrastructure to run a Windows application.
The main part is the management of the message pump which processes all the messages sent by the OS to the application, particularly the repaint events which trigger the ... repaint of the rendering surface of the application.
So what the Application.Run do is essentially starting the message pump.

