2013-08-26 2 views
1

Скажем, у меня две Windows WPF. WindowA и WindowB. Каждое окно имеет две кнопки. Кнопка «Открыть», которая будет отображать другое окно и кнопку «Закрыть», которая закроет другое окно (наоборот).Отображение и закрытие нескольких окон

Пример WindowA У меня есть следующее событие щелчка и суб

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 

Однако закрывает все приложения, а не только WindowA. WindowB открывается примерно на 0,5 секунды.

Как открыть другое окно и закрыть текущее окно?

+0

Я думаю, что ваш «WindowA» является основным контуром сообщения, его закрытие означает уничтожение основного цикла сообщений, и приложение будет остановлено, вместо этого попробуйте «Скрыть». Нам не нужно закрывать его. –

+0

Ах да. Скрытие работ. Моя главная забота - это производительность. Окно A и B имеют 4 изображения, которые отображаются, когда они открыты. Если я скрою WindowA, не увеличит использование памяти приложений? –

+0

, потому что Window A неправильно размещен * –

ответ

2

Похоже, что ваш Application.ShutdownMode установлен в OnMainWindowClose. Если вы хотите, чтобы приложение оставалось открытым, пока отображается любое окно, попробуйте OnLastWindowClose.

Смежные вопросы