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
.NET Aspire per applicazioni distribuite
Gestire progetti NPM in .NET Aspire
Creare una libreria CSS universale: Nav menu
Importare repository da Bitbucket a GitHub Enterprise Cloud
Abilitare .NET 10 su Azure App Service e Azure Functions
Introduzione ai web component HTML
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Testare il failover sulle region in Azure Storage
Gestione file Javascript in Blazor con .NET 9
Arricchire l'interfaccia di .NET Aspire
Interagire con Azure DevOps tramite MCP Server
Controllare la telemetria con .NET Aspire


