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
Sostituire la GitHub Action di login su private registry
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Referenziare un @layer più alto in CSS
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Usare le collection expression per inizializzare una lista di oggetti in C#
Eliminare una project wiki di Azure DevOps
Ordine e importanza per @layer in CSS
Assegnare un valore di default a un parametro di una lambda in C#
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Potenziare Azure AI Search con la ricerca vettoriale