using Avalonia; using Avalonia.Animation; using Avalonia.Animation.Easings; using Avalonia.Controls; using Avalonia.Media; using Avalonia.Styling; namespace ClaudeDo.Ui.Views.Islands; public partial class TaskRowView : UserControl { public TaskRowView() { InitializeComponent(); } protected override async void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e) { base.OnAttachedToVisualTree(e); RenderTransform = new TranslateTransform(0, 8); Opacity = 0; var anim = new Avalonia.Animation.Animation { Duration = TimeSpan.FromMilliseconds(300), Easing = new CubicEaseOut(), Children = { new KeyFrame { Cue = new Cue(0), Setters = { new Setter(OpacityProperty, 0d) } }, new KeyFrame { Cue = new Cue(1), Setters = { new Setter(OpacityProperty, 1d) } }, } }; await anim.RunAsync(this); Opacity = 1; RenderTransform = null; } }