Окно Show () ожидает нажатия кнопки и активации главного окна (WPF) - PullRequest
0 голосов
/ 06 ноября 2019

InteractiveWindow содержит кнопку ДА и НЕТ. Текущее решение отображает InteractiveWindow на MainWIndow без доступа к MainWindow. InteractiveWindow также Window (не UserControl). Как можно преобразовать мое диалоговое окно, чтобы мой InteractiveWindow находился поверх моего MainWindow и имел доступ к MainWindow до тех пор, пока не будет нажата одна из двух кнопок?

internal async Task<bool> Test()
{
      // some code

        var test= new InteractiveWindow();
        test.Owner = this;
        test.ShowDialog();

        // some other code
        return true;
}

Старый код для одной из кнопок:

private void YES_Click(object sender, RoutedEventArgs e)
{
    GetWindow(this).DialogResult = true;
    this.Close();
}

1 Ответ

0 голосов
/ 06 ноября 2019

Вы должны использовать

test.Show()

вместо test.ShowDialog(), потому что ShowDialog() блокирует. Даже если ваш метод async, он выполняется синхронно до тех пор, пока ему не понадобится await неполное Task, поэтому ваш метод Test блокируется, потому что такого оператора await нет. Я предлагаю вам удалить этот модификатор async, если вы его не используете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...