This is WPF...you have to account for the way the logical tree arranged, measured, drawn...it's never going to be as fast as some C++ application with some kind of "fixed" layout. Typically in MVVM the visual tree is going to be re-created as a new Window is created and the content bound to your view model...that's the way WPF works. However, I can say that I've got some pretty complex applications using it and runs well. It could well depend on what stuff you have in your application....for example, how long does your app take on start up? Are you running extra stuff on the UI thread when a Window/UserControl is created? How sync or async is your app?