Gestione delle finestre nella Universal Windows Platform

di Matteo Tumiati, in Windows 10,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi