Abbiamo già parlato del Silverlight for Windows Phone Toolkit e delle funzionalità di transizione che offre. Queste transizioni ricordano quelle che si trovano nel sistema operativo e consentono di migliorare l'UX dell'applicazione.
Molto spesso vengono applicati semplicemente via XAML, mentre è possibile applicarle anche programmaticamente, ad esempio quando si cambia logicamente il contenuto della schermata, ma non l'effettiva view XAML, come quando si naviga all'interno di una lista che mostra il dettaglio.
Supponendo di avere due controlli Grid, uno chiamato ContentPanel e l'altro NewPanel, e che si vuole passare dal visualizzare l'uno all'altro, dando la sensazione all'utente che si stia cambiando effettivamente view, si può usare in codice come questo:
public void StartTransition(UIElement element, bool isEntering) { var transition = new TurnstileTransition(); transition.Mode = isEntering ? TurnstileTransitionMode.ForwardIn : TurnstileTransitionMode.BackwardIn; var r = transition.GetTransition(element); r.Completed += delegate { r.Stop(); }; r.Begin(); } private void ChangeView_Click(object sender, RoutedEventArgs e) { ContentPanel.Visibility = Visibility.Collapsed; NewPanel.Visibility = Visibility.Visible; StartTransition(this, true); }
In questo scenario va poi gestisco esplicitamente il pulsante back, così da invocare l'animazione al contrario (il secondo parametro indica se è da richiamare l'animazione di ingresso o uscita).
E' utile sottolineare che tutte le animazioni del toolkit possono essere applicate anche ai singoli elementi visuali, non essendo limitati solo alle pagine.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Reactive form tipizzati con FormBuilder in Angular
Usare lo spread operator con i collection initializer in C#
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Miglioramenti agli screen reader e al contrasto in Angular
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Controllare gli accessi IP alle app con Azure Container Apps
Generare file per il download da Blazor WebAssembly
Eseguire operazioni sui blob con Azure Storage Actions
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Filtrare e rimuovere gli elementi dalla cache del browser tramite le API JavaScript
Utilizzare un service principal per accedere a Azure Container Registry
Gestire errori funzionali tramite exception in ASP.NET Core Web API