2013-12-12 4 views
3

Я новичок в WPF, а также C#, пожалуйста, несите меня.Как сделать главное окно ждать, пока вновь открытое окно не закроется в C# WPF?

У меня есть главное окно, открывающее новое окно. Теперь это новое окно - это запрос, следует ли перезаписывать файл или нет, а главное окно обращается к открытой переменной в новом окне, чтобы проверить результат запроса.

Но я не могу получить обработку главного окна, пока не закроется новое окно.

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); 

Любые предложения приветствуются.

ответ

21

ShowDialog Использование вместо Show -

Win.ShowDialog(); 

От MSDN -

Открывает окно и возвращается только тогда, когда вновь открыто окно закрыто.

1

Хотя ShowDialog отлично работает, вы можете установить MainWindow.IsEnabled = false, если вам не нравится это модальное окно. Иногда полезно видеть главное окно.

2

Использовать метод ShowDialog(), поскольку он открывает окно и возвращается только после закрытия только что открытого окна.

синтаксис

Win.ShowDialog(); 
0

Вместо того, чтобы использовать свойство .Show() для открывающегося/отображения окна, используйте .ShowDialog() вместо :)

+1

Это звучит как повторение [этот существующего ответ] (http://stackoverflow.com/a/20540195), а также [этот существующий ответ] (http://stackoverflow.com/a/20540316). – Pang

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