#c# #windows-runtime #uwp
#c# #windows-среда выполнения #uwp
Вопрос:
Я разрабатываю приложение UWP, которое охватывает несколько окон, таких как Microsoft Edge или Sticky Notes.
Мне удалось закрыть дочернее окно путем вызова Window.Current.Close()
, но я не могу закрыть главное окно или базовое окно дочерних окон.
Exception thrown: 'System.Runtime.InteropServices.COMException' in MyApp.exe
WinRT information: Closing main window is not allowed.
С другой стороны, мы можем запускать Microsoft Edge Windows и закрывать их независимо от порядка.
Есть ли какой-либо способ закрыть главное окно или изменить отношения родитель-потомок Windows?
Комментарии:
1. Главное окно является особенным: его закрытие завершает работу приложения. Если это то, что вы хотите сделать, используйте Application.Exit .
Ответ №1:
Выполните ApplicationView.GetForCurrentView().TryConsolidateAsync()
в главном окне, чтобы закрыть его должным образом, как если бы вы закрыли его, нажав кнопку закрыть в строке заголовка. Если ваше приложение имеет только одно окно на экземпляр, вам следует предпочесть это Application.Exit()
, поскольку этот метод приостанавливает работу приложения и Application.Exit()
резко закрывает приложение. Кроме того, при закрытии приложения этим методом предыдущая позиция и размер вашего приложения запоминаются в отличие от for Application.Exit()
.