La possibilità di creare una nuova finestra con WinRT non è nuova: esiste già da Windows 8, ma, con le applicazioni che giravano solo a schermo intero, questa funzionalità aveva uno scopo limitato.
Per creare una nuova finestra con Windows 10 ci servono due cose fondamentali, cioè l'identificativo della finestra corrente e una nuova finestra.
int mainViewId = ApplicationView.GetApplicationViewIdForWindow(CoreApplication.MainView.CoreWindow); ApplicationView newAppView = null; CoreApplicationView newCoreView = CoreApplication.CreateNewView(); await newCoreView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { newAppView = ApplicationView.GetForCurrentView(); Window.Current.Content = new SecondPage(); Window.Current.Activate(); });
In questo caso siamo andati a creare una nuova ApplicationView, il cui contenuto è una vista chiamata SecondPage: in realtà, potrebbe essere una qualsiasi vista all'interno della nostra applicazione. Dato che viene creata una nuova istanza, potremmo anche passare la stessa view dalla quale creiamo la nuova finestra.
A questo punto non ci rimane che avviare l'istanza appena creata su una nuova finestra:
await ApplicationViewSwitcher.TryShowAsStandaloneAsync( newAppView.Id, ViewSizePreference.Default, mainViewId, ViewSizePreference.Default);
Ed il risultato che otterremo sarà simile al seguente:

Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Disabilitare automaticamente un workflow di GitHub
La gestione della riconnessione al server di Blazor in .NET 9
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Creare una libreria CSS universale: Cards
Ottimizzare le performance usando Span<T> e il metodo Split
Generare velocemente pagine CRUD in Blazor con QuickGrid
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Migliorare l'organizzazione delle risorse con Azure Policy
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Usare le navigation property in QuickGrid di Blazor
Triggerare una pipeline su un altro repository di Azure DevOps