Итак, у меня есть StackLayout, привязанный к списку элементов, который по сути работает как представление списка/коллекции и выглядит примерно так:
<StackLayout BindableLayout.ItemsSource = "{Binding Items}">
<BindableLayout.ItemTemplate>
<DataTemplate x:DataType = "Item">
<Frame>
..........
</Frame>
</DataTemplate>
</BindableLayout>
</StackLayout>
Я хочу добавить анимацию при рендеринге каждого кадра. Код моей анимации работает нормально, но когда я привязываю его к кадру каждого элемента, анимация воспроизводится одновременно для всех элементов, хотя я хочу, чтобы она запускалась с задержкой для каждого из них, что приводит к ошеломляющему эффекту. По сути, что-то похожее на анимацию, представленную в этом блоге разработчиков. .
Из того, что я видел, больше нет AttachedHandler ни для одного из компонентов MAUI, и вам придется использовать поведение, которое кажется немного запутанным. Я попробовал следовать документации по поведению и добавил собственную анимацию к событию Loaded элементов, но конечный результат тот же: все анимации воспроизводятся одновременно.
Кроме того, у меня возникло много других проблем при использовании ListViews/CollectionViews, поэтому я предпочитаю придерживаться текущей реализации, если нет другого решения.
Есть ли простой способ добиться такого эффекта, когда каждый элемент имеет отложенную анимацию?
Я пробовал перебирать список и задавать для каждой анимации разную задержку, но это не сработало. Попытка задержать анимацию с помощью Task.Delay, похоже, просто задерживает обычную анимацию элементов.





Я считаю, что в вашем случае просто замените событие AttachedHandler на VisualElement.Loaded или Element.HandlerChanged:
<Frame Loaded = "Frame_Loaded">
<Frame HandlerChanged = "Frame_HandlerChanged">
Кажется, работает, добавляя увеличивающуюся задержку к методу обработчика. Большое спасибо!