2013-08-26 65 views
1

假設我有兩個WPF窗口。 WindowA和WindowB。每個窗口都有兩個按鈕。一個打開按鈕將顯示另一個窗口,一個關閉按鈕將關閉另一個窗口(反之亦然)。顯示和關閉多個窗口

實例窗口A我有以下click事件和子

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click 
     WindowB.Show() 
     CloseWeAidWindow() 
    End Sub 
    Public Sub CloseWeAidWindow() 
     Dim CloseWindow = Window.GetWindow(Me) 
     If CloseWindow IsNot Nothing Then 
      CloseWindow.Close() 
      GC.Collect() 
     End If 
    End Sub 

但是它會關閉整個應用程序,而不僅僅是窗口A。 WindowB打開大約0.5秒。

如何打開另一個窗口並關閉當前窗口?

+0

我想你的'WindowA'是主要的消息循環,關閉它意味着銷燬主消息循環並且應用程序將被關閉,請嘗試'隱藏'而不是。我們不需要關閉它。 –

+0

啊是的。隱藏工程。我主要關心的是性能。窗口A和窗口B都有4個圖像,當它們打開時顯示。如果我隱藏WindowA不會增加應用程序的內存使用量嗎? –

+0

,因爲窗口A沒有正確處置* –

回答

2

聽起來像你的Application.ShutdownMode設置爲OnMainWindowClose。如果您希望應用在任何窗口可見的情況下保持打開狀態,請嘗試OnLastWindowClose