L'UWP Community Toolkit mette a disposizione una serie di controlli e helper che ci consentono di snellire e semplificare la scrittura delle nostre applicazioni. Nello script di questa settimana vediamo come sia semplice introdurre il concetto di loop delle animazioni, cosa che attualmente non è supportata direttamente.
Supponiamo quindi di avere una Grid di nome MyGrid e di voler animare tutti i suoi figli. Possiamo raggiungere questo risultato con uno snippet di codice di questo tipo:
private void Animate() { foreach (var children in MyGrid.Children) { var lastElement = MyGrid.Children.IndexOf(children) == (MyGrid.Children.Count - 1); var animation = children.Scale(1.25f, 1.25f, 0.5f, 0.5f, 1000, 0).Then() .Scale(1, 1, 0.5f, 0.5f, 1000, 0); if (lastElement && ContinueAnimate) animation.Completed += Animation_Completed; animation.Start(); } } private void Animation_Completed(object sender, EventArgs e) { var animationSender = (sender as AnimationSet); animationSender.Completed -= Animation_Completed; Animate(); }
Nel nostro script, tramite il metodo Scale ingrandiamo il nostro UIElement di un 25% e, successivamente, concateniamo alla fine di questa prima animazione uno shrink che riporta le dimensioni a quelle precedenti. Il trucco per gestire il loop è quello di capire quando il figlio che stiamo animando è l'ultimo della collection e associargli un metodo che richiama ricorsivamente il metodo di partenza, nel nostro caso Animate.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Recuperare App Service cancellati su Azure
Assegnare un valore di default a un parametro di una lambda in C#
Gestire il colore CSS con HWB
Scrivere selettori CSS più semplici ed efficienti con :is()
Gestire la cancellazione di una richiesta in streaming da Blazor
Creare una libreria CSS universale: Nav menu
Definire stili a livello di libreria in Angular
Generare un hash con SHA-3 in .NET
Le novità di Angular: i miglioramenti alla CLI
Ordinare randomicamente una lista in C#
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Migrare una service connection a workload identity federation in Azure DevOps