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
Creare una libreria CSS universale: Cards
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Applicare un filtro per recuperare alcune issue di GitHub
Generare la software bill of material (SBOM) in GitHub
Gestire gli accessi con Token su Azure Container Registry
Creare un webhook in Azure DevOps
Escludere alcuni file da GitHub Secret Scanning
Implementare l'infinite scroll con QuickGrid in Blazor Server
Gestione dei nomi con le regole @layer in CSS
Filtering sulle colonne in una QuickGrid di Blazor
Ottimizzare le performance usando Span<T> e il metodo Split
Conoscere il rendering Server o WebAssembly a runtime in Blazor