Как заставить главное окно ждать, пока вновь открытое окно не закроется в C# WPF?
Я новичок в WPF, а также C#, пожалуйста, потерпите со мной.
у меня есть главное окно, которое открывает новое окно. Теперь это новое окно-запрос на перезапись файла, и главное окно обращается к открытой переменной в новом окне, чтобы проверить результат запроса.
но я не могу заставить обработку главного окна ждать, пока новое окно не закроется.
Window1 Win = new Window1();
Win.Show();
if (Win.pr_res == 1)
{
abc.Text = "File to be overwritten";
File.Delete(_destination);
Start();
}
else
{
abc.Text = "Operation Aborted";
}
Я попытался добавить цикл while, проверяя другое открытое логическое значение в основном окно, но это просто зависает вся программа.
while(!_closecheck);
любые предложения приветствуются.
4 ответов
использовать ShowDialog вместо Show
-
Win.ShowDialog();
С MSDN -
открывает окно и возвращается только тогда, когда вновь откроется окно закрытый.
используйте метод ShowDialog (), поскольку он открывает окно и возвращает только тогда, когда вновь открытое окно закрыто.
синтаксис
Win.ShowDialog();
хотя ShowDialog
отлично работает, вы можете установить MainWindow.IsEnabled = false
Если вам не нравится, что модальное окно. Иногда полезно посмотреть главное окно.
вместо использования .Show () свойство для открытия/отображения окна, использовать .ShowDialog () вместо :)