Откройте окно и закройте все остальные в WPF
Привет,
Я застрял в своем приложении WPF. У меня есть пользовательский элемент управления, на котором я разместил много различных ссылок(кнопок), которые открывали бы другие формы. Теперь по щелчку этих ссылок я хочу, чтобы открылась одна форма, и пусть все они будут закрыты. Код, который я использую, таков, как показано ниже, и я знаю, что это никогда не позволит этому произойти так, как я хочу :
private void btnOEP_Click(object sender, RoutedEventArgs e) { ExistingProject objEP = new ExistingProject(); CloseAllWindows(); objEP.ShowDialog(); } private void btnCNP_Click(object sender, RoutedEventArgs e) { AddNewProjects objAddNew = new AddNewProjects(); CloseAllWindows(); objAddNew.ShowDialog(); } private void CloseAllWindows() { for (int intCounter = App.Current.Windows.Count - 1; intCounter >= 0; intCounter--) App.Current.Windows[intCounter].Close(); }
Проблема, с которой я сталкиваюсь, заключается в том, что я открываю диалог формы, а после этого закрываю все окна формы приложения(используя этот код), что, в свою очередь, также закроет требуемое окно. Мне нужно закрыть все формы, кроме той, которую я дал команду оставить открытой. Как это можно сделать? Пожалуйста, предложите решение.
Спасибо
Henry Minute
Как я уже говорил, Вы не можете закрыть основную форму, потому что это приведет к закрытию приложения. Всегда есть система.Окно.Hide (), который скроет главное окно, но затем вам придется передать ссылку на главное окно каждому новому окну, которое вы создадите, обработать событие OnClosing() этого нового окна, чтобы снова показать() главное окно, чтобы дать доступ к кнопкам, готовым к следующему разу.