業務アプリにありがちな、シングルウインドウで画面展開していき、子画面を閉じると親画面が表示される系の実装例。いわゆるパンくずリスト。(まあ以下の実装はリスト表示ではないので、正確にはパンくずリストではないですが)
 具体的には、次の画面を .show した後に、次の画面の .Owner に親画面のインスタンスを突っ込んでおきます。
 その後、親画面は .Hide で非表示にします。
 子画面が閉じられたときは、.Owner を .show してやれば親画面の表示が戻ります。
 .Owner の Nothing を確認しているのは、ルートウインドウは親要素がセットされていないため。
Class MainWindow 
    Private Shared _count As Integer = 0
    Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
        _count += 1
        Me.Title = CStr(_count)  ' いつ作った Window なのかを確認するための、デバッグ情報。
    End Sub
    ' 子画面を開く
    Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
        Dim f = New MainWindow
        f.Show()
        f.Owner = Me
        Me.Hide()
    End Sub
    ' 画面を閉じる
    Private Sub MainWindow_Closed(sender As Object, e As EventArgs) Handles Me.Closed
        If (Me.Owner Is Nothing) = False Then   ' ルートウインドウではないなら
            Me.Owner.Show()
        End If
    End Sub
End Class
 上記はテストプログラムなので、Title に生成した Windows 番号(_count) を表示して、いつ作成したかわかるようにしています。
 また、本来は複数のウインドウで呼び合いますが、枚数作るのは面倒だったので、再帰でサンプルを作っています。