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
Effettuare il refresh dei dati di una QuickGrid di Blazor
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Conoscere il rendering Server o WebAssembly a runtime in Blazor
Creare un webhook in Azure DevOps
Migliorare l'organizzazione delle risorse con Azure Policy
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
Ottenere un token di accesso per una GitHub App
Introduzione alle Container Queries
Gestione degli stili CSS con le regole @layer
Eliminare una project wiki di Azure DevOps
Generare una User Delegation SAS in .NET per Azure Blob Storage
Anonimizzare i dati sensibili nei log di Azure Front Door