diff --git a/src/Avalonia.Animation/Easing/Easing.cs b/src/Avalonia.Animation/Easing/Easing.cs
index 00ebacafe8..62bcf723fb 100644
--- a/src/Avalonia.Animation/Easing/Easing.cs
+++ b/src/Avalonia.Animation/Easing/Easing.cs
@@ -1,4 +1,4 @@
-using Avalonia.Collections;
+using Avalonia.Collections;
using System;
using System.Collections.Generic;
using System.Text;
@@ -28,17 +28,15 @@ namespace Avalonia.Animation.Easings
/// Returns the instance of the parsed type.
public static Easing Parse(string e)
{
- // TODO: There should be a better way to
- // find all the subclasses than this method...
if (_easingTypes == null)
{
_easingTypes = new Dictionary();
- var derivedTypes = AppDomain.CurrentDomain.GetAssemblies()
- .SelectMany(p => p.GetTypes())
+ // Fetch the built-in easings.
+ var derivedTypes = typeof(Easing).Assembly.GetTypes()
.Where(p => p.Namespace == s_thisType.Namespace)
.Where(p => p.IsSubclassOf(s_thisType))
- .Select(p=>p).ToList();
+ .Select(p => p).ToList();
foreach (var easingType in derivedTypes)
_easingTypes.Add(easingType.Name, easingType);
diff --git a/src/Avalonia.Controls/ProgressBar.cs b/src/Avalonia.Controls/ProgressBar.cs
index e41d86636a..5e5a460368 100644
--- a/src/Avalonia.Controls/ProgressBar.cs
+++ b/src/Avalonia.Controls/ProgressBar.cs
@@ -102,11 +102,13 @@ namespace Avalonia.Controls
UpdateIndicator(Bounds.Size);
}
+ // TODO: Implement Indeterminate Progress animation
+ // in xaml (most ideal) or if it's not possible
+ // then on this class.
private class IndeterminateAnimation : IDisposable
{
private WeakReference _progressBar;
- //private IDisposable _indeterminateBindSubscription;
- //private TimeSpan _startTime;
+
private bool _disposed;
public bool Disposed => _disposed;
@@ -114,12 +116,7 @@ namespace Avalonia.Controls
private IndeterminateAnimation(ProgressBar progressBar)
{
_progressBar = new WeakReference(progressBar);
- //_startTime = Animate.Stopwatch.Elapsed;
- //_indeterminateBindSubscription = Animate.Timer.TakeWhile(x => (x - _startTime).TotalSeconds <= 4.0)
- // .Select(GetAnimationRect)
- // .Finally(() => _startTime = Animate.Stopwatch.Elapsed)
- // .Repeat()
- // .Subscribe(AnimationTick);
+
}
public static IndeterminateAnimation StartAnimation(ProgressBar progressBar)
@@ -129,31 +126,11 @@ namespace Avalonia.Controls
private Rect GetAnimationRect(TimeSpan time)
{
- //if (_progressBar.TryGetTarget(out var progressBar))
- //{
- // if (progressBar.Orientation == Orientation.Horizontal)
- // return new Rect(-progressBar._indicator.Width - 5 + (time - _startTime).TotalSeconds / 4.0 * (progressBar.Bounds.Width + progressBar._indicator.Width + 10), 0, progressBar._indicator.Bounds.Width, progressBar._indicator.Bounds.Height);
- // else
- // return new Rect(0, progressBar.Bounds.Height + 5 - (time - _startTime).TotalSeconds / 4.0 * (progressBar.Bounds.Height + progressBar._indicator.Height + 10), progressBar._indicator.Bounds.Width, progressBar._indicator.Bounds.Height);
- //}
- //else
- //{
- // _indeterminateBindSubscription.Dispose();
return Rect.Empty;
- //}
- }
-
- private void AnimationTick(Rect rect)
- {
- //if (_progressBar.TryGetTarget(out var progressBar))
- // progressBar._indicator.Arrange(rect);
- //else
- // _indeterminateBindSubscription.Dispose();
}
public void Dispose()
{
- //_indeterminateBindSubscription?.Dispose();
_disposed = true;
}
}
diff --git a/src/Avalonia.Visuals/Animation/CrossFade.cs b/src/Avalonia.Visuals/Animation/CrossFade.cs
index bf532c62c3..410ad0a3b3 100644
--- a/src/Avalonia.Visuals/Animation/CrossFade.cs
+++ b/src/Avalonia.Visuals/Animation/CrossFade.cs
@@ -51,6 +51,8 @@ namespace Avalonia.Animation
{
var tasks = new List();
+ // TODO: Implement relevant transition logic here (or discard this class)
+ // in favor of XAML based transition for pages
if (to != null)
{
to.Opacity = 0;
@@ -58,13 +60,6 @@ namespace Avalonia.Animation
if (from != null)
{
- //tasks.Add(Animate.Property(
- // (IAvaloniaObject)from,
- // Visual.OpacityProperty,
- // from.Opacity,
- // 0,
- // LinearEasing.For(),
- // Duration).ToTask());
}
if (to != null)
@@ -72,17 +67,8 @@ namespace Avalonia.Animation
to.Opacity = 0;
to.IsVisible = true;
- //tasks.Add(Animate.Property(
- // (IAvaloniaObject)to,
- // Visual.OpacityProperty,
- // 0,
- // 1,
- // LinearEasing.For(),
- // Duration).ToTask());
}
- //await Task.WhenAll(tasks.ToArray());
-
// FIXME: This is temporary until animations are fixed.
await Task.Delay(1);
diff --git a/src/Avalonia.Visuals/Animation/PageSlide.cs b/src/Avalonia.Visuals/Animation/PageSlide.cs
index 2eb0426bc5..13f9e67d29 100644
--- a/src/Avalonia.Visuals/Animation/PageSlide.cs
+++ b/src/Avalonia.Visuals/Animation/PageSlide.cs
@@ -74,34 +74,18 @@ namespace Avalonia.Animation
var distance = Orientation == SlideAxis.Horizontal ? parent.Bounds.Width : parent.Bounds.Height;
var translateProperty = Orientation == SlideAxis.Horizontal ? TranslateTransform.XProperty : TranslateTransform.YProperty;
+
+ // TODO: Implement relevant transition logic here (or discard this class)
+ // in favor of XAML based transition for pages
if (from != null)
{
- //var transform = new TranslateTransform();
- //from.RenderTransform = transform;
- //tasks.Add(Animate.Property(
- // transform,
- // translateProperty,
- // 0.0,
- // forward ? -distance : distance,
- // LinearEasing.For(),
- // Duration).ToTask());
+
}
if (to != null)
{
- //var transform = new TranslateTransform();
- //to.RenderTransform = transform;
- to.IsVisible = true;
- //tasks.Add(Animate.Property(
- // transform,
- // translateProperty,
- // forward ? distance : -distance,
- // 0.0,
- // LinearEasing.For(),
- // Duration).ToTask());
- }
- //await Task.WhenAll(tasks.ToArray());
+ }
// FIXME: This is temporary until animations are fixed.
await Task.Delay(1);
diff --git a/src/Markup/Avalonia.Markup.Xaml/PortableXaml/AvaloniaDefaultTypeConverters.cs b/src/Markup/Avalonia.Markup.Xaml/PortableXaml/AvaloniaDefaultTypeConverters.cs
index 209b326255..21b9f2586a 100644
--- a/src/Markup/Avalonia.Markup.Xaml/PortableXaml/AvaloniaDefaultTypeConverters.cs
+++ b/src/Markup/Avalonia.Markup.Xaml/PortableXaml/AvaloniaDefaultTypeConverters.cs
@@ -1,19 +1,13 @@
-using System;
+using System;
using System.Collections.Generic;
-using System.Globalization;
-using System.Reflection;
using Avalonia.Markup.Xaml.Converters;
using Avalonia.Media;
using Avalonia.Media.Imaging;
using Avalonia.Styling;
-using Portable.Xaml.ComponentModel;
-using System.ComponentModel;
using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.Collections;
using Avalonia.Controls.Templates;
-using Avalonia.Animation;
-using Avalonia.Animation.Easings;
namespace Avalonia.Markup.Xaml.PortableXaml
{