Gestire il loop nelle animazioni con l'UWP Community Toolkit nella Universal Windows Platform

di , in Windows 10,

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

Visualizza/aggiungi commenti

Gestire il loop nelle animazioni con l'UWP Community Toolkit nella Universal Windows Platform (#147) 1010 1
| Condividi su: Twitter, Facebook, LinkedIn, Google+

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi