Используя net 5, кажется, это весь код, необходимый для открытия окна ShowDialog и его закрытия.
Из окна, которое вы открыли.
<Button Margin="10" IsDefault="True" Click="Ok_OnClick" >OK</Button>
<Button Margin="10" IsCancel="True">Cancel</Button>
private void Ok_OnClick(object sender, RoutedEventArgs e)
{
DialogResult = true;
}
Из функции, чтобы открытьwindow.
var requester = new DeleteRequester();// a wpf window
var showDialog = requester.ShowDialog( );
if (showDialog != null && showDialog.Value)
единственная причина, по которой он проверяется на нулевое значение, состоит в том, чтобы избавиться от синей ворчливой линии от повторного повышения резкости.
Кажется, когда вы меняете "DialogResult"собирается закрыть и значение возвращается.В смысле, зачем вам менять значение, если вы еще этого не сделали.
Что бы вы ни делали с окном, вам просто нужно закрыть окно, чтобы вернуть ложный результат, или установить DialogResult.true, чтобы закрыть окно с истинным результатом.
Простой и базовый:
If(ItWorked){DialogResult = true;}// closes window returns true
If(ItsJunk){Close();}// closes window returns false
If(ItsJunk){DialogResult = false;}//closes window returns false