2013-08-26 67 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