Browse Source

Enable transitions for non-Visuals.

`Visual` knows when it's attached to the visual tree, so it can enable transitions then.

This is a hack due to the fact that non-Visuals currently don't know when to enable transitions.
pull/3854/head
Steven Kirk 7 years ago
parent
commit
83098e9923
  1. 2
      src/Avalonia.Animation/Animatable.cs
  2. 3
      src/Avalonia.Visuals/Visual.cs

2
src/Avalonia.Animation/Animatable.cs

@ -28,7 +28,7 @@ namespace Avalonia.Animation
o => o.Transitions, o => o.Transitions,
(o, v) => o.Transitions = v); (o, v) => o.Transitions = v);
private bool _transitionsEnabled; private bool _transitionsEnabled = true;
private Transitions? _transitions; private Transitions? _transitions;
private Dictionary<ITransition, TransitionState>? _transitionState; private Dictionary<ITransition, TransitionState>? _transitionState;

3
src/Avalonia.Visuals/Visual.cs

@ -114,6 +114,9 @@ namespace Avalonia
/// </summary> /// </summary>
public Visual() public Visual()
{ {
// Disable transitions until we're added to the visual tree.
DisableTransitions();
var visualChildren = new AvaloniaList<IVisual>(); var visualChildren = new AvaloniaList<IVisual>();
visualChildren.ResetBehavior = ResetBehavior.Remove; visualChildren.ResetBehavior = ResetBehavior.Remove;
visualChildren.Validate = visual => ValidateVisualChild(visual); visualChildren.Validate = visual => ValidateVisualChild(visual);

Loading…
Cancel
Save