Ho un gruppo di UserControls WPF che attivano internamente alcune animazioni in seguito alle interazioni dell'utente. Tutte le animazioni hanno repeatbehavior = "true" e tutte le animazioni hanno la stessa durata. Ora vorrei sincronizzare tutte quelle animazioni su una timeline in modo che sbiadiscano dentro e fuori in sincronizzazione. Non importa quando l'utente ha attivato le animazioni. Ad esempio, se le animazioni durano tutti i 3 secondi e l'utente attiva la seconda animazione dopo 1.5 secondi, desidero comunque che le animazioni raggiungano il massimo allo stesso tempo. Forse posso definire una linea temporale globale in un dizionario di risorse globale che tutte le animazioni definite da qualche parte negli UserControls possano usare? Preferibilmente solo XAML.Più storyboard o animazioni che condividono la stessa sequenza temporale?
risposta
Basta aggiungere tutte le animazioni a un singolo TimelineCollection. Quindi aggiungi TimelineCollection al tuo Storyboard.Children. Quindi spareranno tutti contemporaneamente.
XAML: impossibile (per quanto ne so)
codice: CompositionTarget.Rendering
Puoi approfondire come userò l'evento CompositionTarget.Rendering con le mie definizioni di animazione? – bitbonk
Dovrai spostare l'animazione sul codice. Nell'evento Rendering, controllare quali animazioni devono essere in esecuzione e aggiornare manualmente le proprietà corrispondenti in base a una singola variabile del timer. Non è molto lavoro, solo alcune righe di SomeElement.SomeProperty = baseValue + rate * timePassed; – ima
Forse il mio post può aiutare a http://translate.google.it/translate?js=n&prev=_t&hl=it&ie=UTF-8&layout=2&eotf=1&sl=it&tl=en&u=http%3A%2F%2Fblogs.ugidotnet.org%2Fleonardo%2Farchive%2F2011%2F01%2F08%2Fsincronizziamo-le-animazioni-con-wpf.aspx&act=url (è in italiano e il collegamento è di Google Translate)
- 1. Casting tra le classi che condividono la stessa interfaccia
- 2. AS3 Due MovieClips che condividono la stessa classe
- 3. Due semi diversi che producono la stessa sequenza "casuale"
- 4. /dev/random tornando sempre la stessa sequenza
- 5. Le app che utilizzano più processi condividono un'istanza Dalvik?
- 6. stdlib's rand() fornisce sempre la stessa sequenza?
- 7. Come ripetere la sequenza di animazioni UIView e autoreverse
- 8. Più thread chiamando la stessa funzione
- 9. Sequenza Python divisa (serie temporale/matrice) in sottosequenze con sovrapposizione
- 10. più socket che condividono una porta in node.js (tramite socket.io)
- 11. java log4j.xml più appendici che condividono un layout
- 12. rand() restituisce sempre la stessa sequenza sull'applicazione riavvio
- 13. Perché queste animazioni non funzionano quando utilizzo uno storyboard?
- 14. Lotto di ritardo nella ricezione delle schede della sequenza temporale
- 15. Animazioni riutilizzabili
- 16. La complessità temporale per l'ordinamento Shell?
- 17. Come posso fare più animazioni in un singolo storyboard in C#/XAML?
- 18. stesso metodo per più classi che implementano la stessa interfaccia
- 19. Nginx più blocchi server che ascoltano la stessa porta
- 20. Come trovo le coppie che condividono la proprietà (colonna) attraverso più tuple (righe)?
- 21. Google Temporale: Colore ogni barra singolarmente multipla su "stessa" linea
- 22. Più thread che iterano sulla stessa mappa
- 23. "elementi Toggle devono essere caselle di testo che condividono la stessa portata del elemento nascosto" in SSRS segnalo
- 24. Più storyboard su una proprietà
- 25. La sequenza contiene più di un elemento
- 26. La complessità temporale di Math.Sqrt()?
- 27. dispatch_queue_create più chiamate con la stessa etichetta
- 28. MVC2 App (e altri) che condividono servizi e autenticazione WCF
- 29. Come rendere due marcatori condividono la stessa etichetta nella legenda usando matplotlib?
- 30. Quale è meglio: sequenza globale singola o sequenza per tabella?
AS I detto che le animazioni sono definite attraverso i miei usercontrols. Non penso che ci sia un modo per aggiungere animazioni che sono definite in diversi usercontrols alla stessa timeline. O forse c'è? – bitbonk