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
Applicare un filtro per recuperare alcune issue di GitHub
Creare gruppi di client per Event Grid MQTT
Ordine e importanza per @layer in CSS
Registrare servizi multipli tramite chiavi in ASP.NET Core 8
Effettuare il binding di date in Blazor
Generare un hash con SHA-3 in .NET
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Ottenere un token di accesso per una GitHub App
Effettuare il refresh dei dati di una QuickGrid di Blazor
Eseguire query verso tipi non mappati in Entity Framework Core
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL