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
Gestire la cancellazione di una richiesta in streaming da Blazor
Eseguire query verso tipi non mappati in Entity Framework Core
Definire stili a livello di libreria in Angular
Estrarre dati randomici da una lista di oggetti in C#
Eseguire le GitHub Actions offline
Effettuare il refresh dei dati di una QuickGrid di Blazor
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Gestire domini wildcard in Azure Container Apps
Accesso sicuro ai secrets attraverso i file in Azure Container Apps
Gestire liste di tipi semplici con Entity Framework Core
Usare una container image come runner di GitHub Actions
Disabilitare automaticamente un workflow di GitHub