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
Fornire parametri ad un Web component HTML
Self-healing degli unit test con Copilot in GitHub
Generare una User Delegation SAS in .NET per Azure Blob Storage
Creare agenti facilmente con Azure AI Agent Service
Utilizzare l nesting nativo dei CSS
.NET Aspire per applicazioni distribuite
Ottimizzare le performance usando Span<T> e il metodo Split
Montare Azure Blob Storage su Linux con BlobFuse2
Integrare un servizio esterno con .NET Aspire
Conoscere il rendering Server o WebAssembly a runtime in Blazor
Utilizzare Locust con Azure Load Testing
Utilizzare DeepSeek R1 con Azure AI
I più letti di oggi
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Le DirectInk API nella Universal Windows Platform
- Gli oggetti CallOut di Expression Blend 4.0
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Sfruttare una CDN con i bundle di ASP.NET


