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)
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