public override async Task CloseAllWindowsAsync() { _windowChannelDictionary.Clear(); _windowHandles.Clear(); _windowHandles[_mainWindowId] = new ApplicationViewWindowHandle() { Id = _mainWindowId }; var views = CoreApplication.Views.ToList(); foreach (var view in views) { await view.ExecuteOnUIThreadAsync(async() => { if (view.IsMain) { return; } await ApplicationView.GetForCurrentView().TryConsolidateAsync(); }); } }
private WindowHandle GetOrCreateHandleForId(int id) => _windowHandles.TryGetValue(id, out var handle) ? handle : _windowHandles[id] = new ApplicationViewWindowHandle() { Id = id };