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
Estrarre dati randomici da una lista di oggetti in C#
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Gestire i dati con Azure Cosmos DB Data Explorer
Path addizionali per gli asset in ASP.NET Core MVC
Utilizzare Model as a Service su Microsoft Azure
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Disabilitare automaticamente un workflow di GitHub
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Referenziare un @layer più alto in CSS
Ordinare randomicamente una lista in C#
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Creare gruppi di client per Event Grid MQTT
I più letti di oggi
- Simulare Azure Cosmos DB in locale con Docker
- Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- .NET Conference Italia 2024 - Milano
- .NET Conference Italia 2023 - Milano e Online