Не могли бы вы дать конструктору окна подтверждения выхода ссылку на окно, которое он должен закрыть при выборе этой опции?
Редактировать: два примера того, как это сделать:
Часто вы хотите открыть диалоговое окно подтверждения, когда окно закрывается, поэтому вы должны создать его в обработчике событий закрытия следующим образом:
private void Window_Closing(object sender, CancelEventArgs e)
{
ConfirmationDialog diag = new ConfirmationDialog();
diag.ShowDialog();
switch (diag.Result)
{
...
}
}
Здесь ваше окно ожидает возврата диалога подтверждения (diag.Show
не будет ждать), если в этом случае вам не нужна информация об окне в самом диалоге. (Result
- это пользовательское свойство, которое вы можете определить в своем диалоге, если DialogResult
bool недостаточно дифференцирован)
Если ваш диалог открывается всякий раз, и вы не можете дождаться его возвращения, вы можете создать его со ссылкой:
private void OpenConfirmDialog()
{
ConfirmationDialog diag = new ConfirmationDialog(this);
diag.Show()
}
и в вашем диалоге код:
public ConfirmationDialog(Window owner)
{
Owner = owner;
}
public void OpenWelcomeScreenThing()
{
this.Close();
Owner.Close();
new WelcomeScreen().Show();
}
или что-то в этом роде. В качестве альтернативы вы также можете работать с событиями.