Skip to content

Commit 8cff808

Browse files
dooly123claude
andcommitted
Fix v0.1.18 startup crash: drift background via Canvas, not RenderTransform
MainWindow's moving background animated RenderTransform, for which Avalonia registers no default animator — applying the style threw "No animator registered for the property RenderTransform" and aborted startup before the window showed (v0.1.18 crashed on launch for everyone). Drift the blobs by animating their Canvas anchors instead (double has a built-in animator). Verified the app launches and stays up. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 714d449 commit 8cff808

1 file changed

Lines changed: 10 additions & 8 deletions

File tree

src/BasisPM.App/Views/MainWindow.axaml

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,35 +22,37 @@
2222
</Animation>
2323
</Style.Animations>
2424
</Style>
25+
<!-- Blobs drift by animating their Canvas anchors (double → built-in animator).
26+
RenderTransform has no default animator in Avalonia and throws at load. -->
2527
<Style Selector="Ellipse.blobA">
2628
<Style.Animations>
2729
<Animation Duration="0:0:23" IterationCount="INFINITE" PlaybackDirection="Alternate" Easing="SineEaseInOut">
28-
<KeyFrame Cue="0%"><Setter Property="RenderTransform" Value="translate(0px,0px)"/></KeyFrame>
29-
<KeyFrame Cue="100%"><Setter Property="RenderTransform" Value="translate(80px,60px)"/></KeyFrame>
30+
<KeyFrame Cue="0%"><Setter Property="Canvas.Left" Value="-60"/><Setter Property="Canvas.Top" Value="-40"/></KeyFrame>
31+
<KeyFrame Cue="100%"><Setter Property="Canvas.Left" Value="20"/><Setter Property="Canvas.Top" Value="30"/></KeyFrame>
3032
</Animation>
3133
</Style.Animations>
3234
</Style>
3335
<Style Selector="Ellipse.blobB">
3436
<Style.Animations>
3537
<Animation Duration="0:0:29" IterationCount="INFINITE" PlaybackDirection="Alternate" Easing="SineEaseInOut">
36-
<KeyFrame Cue="0%"><Setter Property="RenderTransform" Value="translate(0px,0px)"/></KeyFrame>
37-
<KeyFrame Cue="100%"><Setter Property="RenderTransform" Value="translate(-70px,50px)"/></KeyFrame>
38+
<KeyFrame Cue="0%"><Setter Property="Canvas.Right" Value="-80"/><Setter Property="Canvas.Top" Value="60"/></KeyFrame>
39+
<KeyFrame Cue="100%"><Setter Property="Canvas.Right" Value="-10"/><Setter Property="Canvas.Top" Value="115"/></KeyFrame>
3840
</Animation>
3941
</Style.Animations>
4042
</Style>
4143
<Style Selector="Ellipse.blobC">
4244
<Style.Animations>
4345
<Animation Duration="0:0:34" IterationCount="INFINITE" PlaybackDirection="Alternate" Easing="SineEaseInOut">
44-
<KeyFrame Cue="0%"><Setter Property="RenderTransform" Value="translate(0px,0px)"/></KeyFrame>
45-
<KeyFrame Cue="100%"><Setter Property="RenderTransform" Value="translate(-60px,-45px)"/></KeyFrame>
46+
<KeyFrame Cue="0%"><Setter Property="Canvas.Left" Value="280"/><Setter Property="Canvas.Bottom" Value="-40"/></KeyFrame>
47+
<KeyFrame Cue="100%"><Setter Property="Canvas.Left" Value="210"/><Setter Property="Canvas.Bottom" Value="20"/></KeyFrame>
4648
</Animation>
4749
</Style.Animations>
4850
</Style>
4951
<Style Selector="Ellipse.blobD">
5052
<Style.Animations>
5153
<Animation Duration="0:0:26" IterationCount="INFINITE" PlaybackDirection="Alternate" Easing="SineEaseInOut">
52-
<KeyFrame Cue="0%"><Setter Property="RenderTransform" Value="translate(0px,0px)"/></KeyFrame>
53-
<KeyFrame Cue="100%"><Setter Property="RenderTransform" Value="translate(55px,-40px)"/></KeyFrame>
54+
<KeyFrame Cue="0%"><Setter Property="Canvas.Right" Value="120"/><Setter Property="Canvas.Bottom" Value="-30"/></KeyFrame>
55+
<KeyFrame Cue="100%"><Setter Property="Canvas.Right" Value="55"/><Setter Property="Canvas.Bottom" Value="30"/></KeyFrame>
5456
</Animation>
5557
</Style.Animations>
5658
</Style>

0 commit comments

Comments
 (0)