Waiting 10 seconds is easy, especially if you want the Thread.Sleep (as per your code above) sort of behaviour (but better yet, achieved via a timer that will call your function etc, so that the user or the application can perform actions in those 10 seconds).
to limit the DispatcherTimer to only once, you can add this code in dispatcherTimer_Tick:
(sender as DispatcherTimer).Stop();
Now, switching the WPF window - see the following Q&A that shows HowTo:
how-to-switch-wpf-windows[
^]
Cheers,
Edo