Una delle novità forse più rilevanti del Creators Update di Windows 10, è la possibilità di creare sofisticate animazioni di transizione tra una pagina e l'altra. Questo tipo di animazioni non sono una novità e sono state una parte fondamentale della UX di Windows fin dalla versione 8.
La novità consiste nel poter agire sui singoli elementi dell'interfaccia grafica in modo tale che l'animazione crei l'effetto di spostamento degli stessi da una pagina all'altra.
Questa tecnica permette di enfatizzare determinati elementi dell'interfaccia grafica, così che l'utente seguendo il percorso dell'animazione presti maggior attenzione a questi elementi.
Il cuore di questa tecnica è la classe ConnectedAnimation, recuperabile traminte ConnectedAnimationService. Per prima cosa, abbiamo bisogno di un elemento grafico da animare: per questo esempio è sufficiente una semplice immagine nella pagina di partenza.
<Image x:Name="MySourceImage" Width="200" Height="200" Stretch="Fill" Source="Assets/MyImage.png" />
E una nella pagina di destinazione:
<Image x:Name="MyDestinationImage" Width="400" Height="400" Stretch="Fill" Source="Assets/MyImage.png" />
Iniziamo a preparare l'animazione e, poco prima di navigare alla pagina di destinazione, eseguiamo la seguente riga di codice per richiamare il metodo PrepareToAnimate:
ConnectedAnimationService.GetForCurrentView().PrepareToAnimate("image", MySourceImage);
E poi proseguiamo con la navigazione:
Frame.Navigate(typeof(MyDestinationPage));
Nella pagina di destinazione eseguiamo l'override del metodo OnNavigatedTo e richiamiamo il metodo GetAnimation, per recuperare l'animazione:
protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); ConnectedAnimation imageAnimation = ConnectedAnimationService.GetForCurrentView().GetAnimation("Myimage"); if (imageAnimation != null) { imageAnimation.TryStart(DestinationImage); } }
E, infine, richiamiamo il metodo TryStart per eseguire l'animazione.
In questo modo, le due immagini, di due pagine differenti, grazie all'animazione sembreranno una sola immagine che, all'atto di navigare alla nuova pagina, ha cambiato posizione e dimensioni.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Utilizzare i primary constructor di C# per inizializzare le proprietà
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Utilizzare politiche di resiliency con Azure Container App
Effettuare il binding di date in Blazor
Migrare una service connection a workload identity federation in Azure DevOps
Utilizzare un service principal per accedere a Azure Container Registry
Routing statico e PreRendering in una Blazor Web App
C# 12: Cosa c'è di nuovo e interessante
Gestione dei nomi con le regole @layer in CSS
Eseguire una query su SQL Azure tramite un workflow di GitHub
Creare una custom property in GitHub
I più letti di oggi
- Accedere con ASP.NET ad un documento XML creato dall'oggetto recordset di ADO e ASP
- Richiamare programmaticamente le operazioni di aggiornamento, eliminazione e inserimento di FormView, DetailsView e GridView
- Aumentare la scalabilità di ASP.NET Core Web API con caching client side
- Visualizzare contenuti Fullscreen con HTML5
- Disabilitare un bottone in una pagina HTML pensando all'accessibilità
- Realizzare siti sicuri con ASP.NET Web Pages
- Focus dei tag input con HTML5
- Disponibile la beta di Silverlight 5
- Ricavare lo spazio occupato su disco dal nostro sito